Java基础语法——循环结构

每日正能量

趁你现在还有时间,尽你自己最大的努力,努力做成你最想做的那件事,成为你最想成为的那种人,过着你最想过的那种生活。这个世界永远比你想的要更精彩,不要败给生活。

循环结构

【本章内容】1. while循环 2. do-while循环 3. for循环
【能力目标】1. 掌握信息的循环输出 2. 学会使用循环解决程序问题 3. 能够区分每种循环的应用场合

 

有些程序段在某些条件下重复执行多次,称为循环结构程序。Java提供了3种循环语句实现循环结构,包括while语句、do-while语句、for语句。它们的共同点是根据给定条件来判断是否继续执行指定的程序段(循环体)。如果满足执行条件,就继续执行循环体,否则就不再执行循环体,结束循环语句。

1. while循环结构

while循环的语法如下:

while(布尔表达式){

循环体;

}

说明:

  1. 布尔表达式表示循环体执行的条件,当条件为true时执行循环体。

  2. 循环体既可以是一条简单的语句,也可以是复合语句。

  3. while语句的执行过程是:计算布尔表达式的值,如果其值是true,执行循环体;再计算布尔表达式的值,如果其值是true,再执行循环体,形成循环,直到布尔表达式的值变为false,结束循环。

图 While循环流程图

这里我们举一个例子

使用while循环实现数字累加求和
使用while循环,计算1+2+3+....+100的和,并显示结果

  代码示例

public class Task1 {	
    public static void main(String[] args) {		
        int i = 1,sum = 0;		
        while(i<=100){			
            sum+=i;			
            i++;		
        }		
        System.out.println("1+2+3+...+100的和是"+sum);	
    }
}

带你分析代码:

  1. 程序中定义int类型的变量i,初始化为1,定义int类型变量sum,用于存储累加的和。在while循环条件中,当i的值<=100时,进入循环体,在循环体内部先将i的值累加到变量sum中,再将变量i自增。循环体执行结束后再次回到while的循环条件中,如果i的值<=100再次进入循环体,否则结束循环。最后输出累加的和。

  2. while循环的特点是先判断,再执行。

运行结果

1+2+3+...+100的和是5050

2. do-while循环结构

do-while循环的语法如下:

do{

循环体;

}while(布尔表达式);

说明:

  1. 布尔表达式表示循环执行的条件。

  2. 循环体既可以是一条语句,也可以是语句序列。

  3. do-while语句执行的过程是:执行循环体,计算布尔表达式的值,如果其值为true,再执行循环体,形成循环,直到布尔表达式的值变为false,结束循环,执行do-while语句后的语句。

 

图 do-while循环流程图  

注意:

        1. do-while语句执行时最少执行一次,因为先执行循环体,再判断表达式

        2. while语句执行时最少执行零次,因为先判断表达式,再执行循环体

这里我们举一个例子

使用do-while循环实现数字累加求和
使用do-while循环,计算1+2+3+...+100的和,并显示结果

  代码示例

public class Task2 {	
    public static void main(String[] args) {		
        int i = 1,sum = 0;		
        do{			
            sum+=i;			
            i++;		
        }while(i<=100);		
        System.out.println("1+2+3+...+100的和是"+sum);	
    }
}

 

带你分析代码:

  1. 程序中定义int类型的变量i,初始化为1,定义int类型变量sum,用于存储累加的和。当程序进入do-while循环时,首先进入循环体,在循环体内部先将i的值累加到变量sum中,再将变量i自增。然后判断i<=100吗,如果判断条件的值为true,程序就会再次进入循环体,否则退出循环。最后输出累加的和。

  2. do-while循环的特点是先执行,再判断。

运行结果

1+2+3+...+100的和是5050

3. for循环结构

for循环的语法结构:

for(表达式1; 表达式2; 表达式3){

循环体;

}

说明:

  1. 表达式1的作用是给循环变量初始化。

  2. 表达式2的作用是给出循环条件。

  3. 表达式3的作用是改变循环变量的值。

  4. 循环体可以是一条或多条语句。

  5. for循环的执行过程是:执行表达式1,计算表达式2,如果表达式2的值为true,执行循环体,执行表达式3,改变循环变量的值,再计算表达式2的值,如果是true,再进入循环体,形成循环,直到表达式2的值为false,结束循环,执行for后面的语句。

 

 

图 for循环流程图

这里我们举一个例子

使用for循环实现数字累加求和
使用for循环,计算1+2+3+...+100的和,并显示结果

代码示例

public class Task3 {	
    public static void main(String[] args) {		
        int sum = 0;		
        for (int i = 0; i < 101 ; i++) {			
            sum += i;		
        }		
        System.out.println("1+2+3+...+100的和是"+sum);	
    }
}

带你分析代码:

  1. 定义int类型变量sum,用于存储累加的和。当程序进入for循环时,首先执行表达式1,为循环变量i初始化为1,然后执行表达式2,判断i<101是否为true,如果为true进入循环体,将i的值累加到变量sum中,再执行表达式3,将循环变量的值i加1,再执行表达式2,判断i<101是否成立,如果成立再进入循环体,形成循环,否则结束for循环。最后输出累加的和。

  2. for循环通常用在已知循环次数的情况下。

运行结果

1+2+3+...+100的和是5050

问题 

至此,我们学习了for、while、do-while循环,这三种循环在使用时有什么区别呢?如何鉴别用哪一种循环来解决开发中的问题呢?下表给出了三种循环在使用上的区别。

for通常用在已知循环次数的情况下
while先判断条件,满足就执行循环体,不满足则退出
do-while先执行一次循环体,再判断条件,如果条件满足,继续执行,不满足,退出循环,最少执行一次

4. break语句

在Java语言中,提供了break和continue语句,可用于控制流程转移。break语句可用于switch语句或while、do-while、for循环语句,如果程序执行到break语句,立即从switch语句或循环语句退出。

这里我们举一个例子

使用break跳出循环
使用while循环计算1+2+3+...,当和超过100时,结束循环,输出一共相加了多少个数

代码示例

public class Task4 {	
    public static void main(String[] args) {		
        int sum = 0;		
        int i = 1;		
        while(true){			
            sum+=i;			
            if(sum>100){				
                break;			
            }			
            i++;		
        }		
        System.out.println("1+2+3+...加到第"+i+"个数时,和超过了100");	
    }
}

带你分析代码:

  1. 定义int类型变量sum,初始化为0,用于存储累加的和,定义int类型变量i,初始化为1,用于控制循环次数。

  2. while(true)表示循环条件永远成立。

  3. if(sum>100)表示终止条件成立,执行break语句,即跳出循环体,执行while循环后面语句。

运行结果

1+2+3+...加到第14个数时,和超过了100

 

5. continue语句

continue语句可用于for、do-while、while语句的循环体中,如果程序执行到continue语句,则结束本次循环,回到循环条件处,判断是否执行下一次循环。

这里我们举一个例子

使用continue停止本次循环,进入下一次循环
使用for循环计算1+2+3+...+100的和,但要去除7的倍数
public class Task5 {	
    public static void main(String[] args) {		
        int sum = 0;		
        for (int i = 1; i <=100; i++) {			
            if(i%7==0){				
                continue;			
            }			
            sum += i;		
        }		
        System.out.println("1+2+3+...+100去除7的倍数的和是"+sum);	
    }
}

带你分析代码:

  1. 定义int类型变量sum,初始化为0,用于存储累加的和。

  2. for循环中定义int类型变量i,初始化为1,用于控制循环次数。

  3. 当i<=100时进入循环体。

  4. 当i%7==0的值为true时,表示i的值是7的倍数,执行continue语句,即结束本次循环,进入下一次循环。

运行结果

1+2+3+...+100去除7的倍数的和是4315

 

6. 多重循环

如果循环语句的循环体中又包含循环语句,就形成了多重循环结构,称为循环嵌套。被包含的循环称为内循环,包含的循环称为外循环。常用的循环嵌套是二重嵌套和三重嵌套。循环嵌套既可以是一种循环自身的嵌套,也可以是不同循环语句相互嵌套。例如:

for( ; ; ) { //外循环开始

        for ( ; ; ) { //内循环开始

        }  //内循环结束

} //外循环结束

这里我们举一个例子 

双循环输出乘法口诀表
使用双重for循环输出乘法口诀表
public class Task6 {	
    public static void main(String[] args) {		
        for (int i = 1; i < 10; i++) {			
            for (int j = 1; j <= i; j++) {				
                System.out.print(i + "*" + j + "=" + (i*j)+"\t");			
            }			
            System.out.println();		
        }	
    }
}

带你分析代码:

1. 外循环循环变量i初始化为1,i < 10,共循环9次,System.out.println();可使得外循环每循环一次换一行。

2. 内循环循环变量j初始化为1,j <= i,即第i行产生i列。

运行结果

 

 

  • 9
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值