Java基础(十)---- for , while , do...while 循环语句
一、循环概述
循环语句在满足循环的条件下,
反复执行某一段代码
,这段被重复执行的代码被称为循环体语句,当反复执行这个循环时,需要在合适的时候把循环判断条件改为false
,从而结束循环
,否则循环将一直执行下去。
二、for循环语句
1.for循环语句格式
for(初始化表达式①,布尔表达式②,步进表达式④){
循环体③;
}
2.for循环语句结构组成
1.初始化语句:在循环最开始最初执行,而且只做唯一一次
2.条件判断:如果成立,则循环继续,如果不成立,则循环退出
3.循环体:重复要做的事情内容,若干行语句
4.步进语句:每次循环结束之后都要进行的扫尾工作
3.执行流程
执行顺序:①②③④ → ②③④ → ②③④ → … → ②不满足为止
①负责完成环境变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环变量的变化情况
代码实战 — 打印一百句HelloWorld
学习了for循环我们不必再使用一百个输出语句
使用for循环几行代码即可搞定
//for循环 --- 代码实例
for(int i = 1 ; i <= 100 ; i++) {
System.out.println("HelloWorld"+",第"+i+"个");
}
【tips】
这里要特别注意循环次数的问题,
i的初始值为0时,i<100即可,打印时需要(i+1)。
实战升级:
1.打印一百句HelloWorld,中间逗号隔开
2.每十句换行一次
3.最后用句号结尾
.
案例分析:
1.使用for循环打印一百句HelloWorld
2.判断i是否为10的倍数
3.使用if…else语句对十10的倍数,和非10的倍数进行区分
4.需要循环体循环99次,第100次使用输出语句打印,以句号结尾
for(int i = 1 ; i < 100 ; i++) {
if(i == 0){
System. out. print ("") ;
}else
if(i % 10 == 0 && i != 0) {
system. out. println("HelloWorld,"+i);
}else {
system. out.print("HelloWorld,");
}
}//循环体最后一次循环i的值为99,这并不是循环的结束,步进表达式依旧会+1,当布尔表达式为false时,才是for循环的结束
System. out.println("HelloWorld。"+(i));
System. out.print1n("一共"+(i)+"个,HelloWorld");
三、while循环语句
1.while循环语句的格式
标准格式
while(条件判断){
循环体;
}
拓展格式
初始化表达式①;
while(条件判断②){
循环体③;
步进表达式④;
}
2.while循环语句的执行流程
(以拓展格式为例)
执行顺序:①②③④ → ②③④ → ②③④ → … → ②不满足为止
①负责完成环境变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环变量的变化情况
//while循环 --- 代码实例
int i = 1;//初始化语句
while(1 <= 10){//条件判断
System.out.println("HelloWorld");//循环体
i++;//步进语句
}
【tips】
- 当while循环主体有且只有一个语句时,大括号可以省略
- 在while循环语句中,只有一个判断条件时,它可以是任何表达式,判断条件为真时,循环就会执行一次,重复测试条件重复循环主,直到判断条件为假时,才会跳离while循环
四、do…while循环语句
1.do…while循环语句格式
初始化表达式①;
do{
循环体③;
步进表达式④;
}while(布尔表达式)②;
2.do…while循环语句执行流程
执行顺序:①③④ → ②③④ → ②③④ → … → ②不满足为止
①负责完成环境变量初始化
②负责判断是否满足循环条件,不满足则跳出循环
③具体执行的语句
④循环后,循环变量的变化情况
//do...while循环 --- 代码实例
int i = 1;//初始化语句
do{
System.out.println("HelloWorld");//循环体
i++;//条件控制
}while(i <=10);//条件判断
五、循环语句的区别
1.区别
- 如果条件判断从来没有满足过,那么for循环和while循环会执行0次,但是do…while循环会至少执行一次
- for循环的变量在小括号中定义,只有循环内部才可以使用,while循环和do…while循环的初始化语句本来就在外面,出来循环后仍可继续使用
2.代码实例
案例要求:
使用三种循环计算100以内的偶数和
.
案例分析:
1.定义变量的取值范围为[0-10]
2.使用取余运算符%判断是否为偶数
3.使用复合运算符+=,将偶数结果进行累加
//1.使用for循环
int a = 0 , sum1 = 0 ;
for(a = 0 ; a <= 100 ; a++){
if(a % 2 == 0){
sum1 += a;
}
}
System.out.println("for,结果为:"+sum1);
System.out.println("===========================");
//2.使用while循环
int b = 0 ,sum2 = 0;
while(b <= 100){
if(b % 2 == 0){
sum2 += b;
}
b++;
}
System.out.println("while,结果为:"+sum2);
System.out.println("===========================");
//1.使用do...while循环
int c = 0, sum3 = 0;
do{
if(c % 2 == 0){
sum3 += c;
}
c++;
}while(c <= 100);
System.out.println("do...while,结果为:"+sum3);
System.out.println("===========================");
六、跳出语句
1.break
常见用法
1.可以用在switch语句中,一旦执行整个switch语句立马结束
2.也可以使用在循环语句中,一旦执行整个循环语句立马结束
for(int i = 1 ; i <= 10 ; i++){
if(i == 5){
break;//如果循环到 i 等于 5 ,则循环立马终止
}
System.out.println(i);
//打印结果为:
// 1
// 2
// 3
// 4
}
建议
循环次数固定
,多采用for
循环;否则
采用while
循环
2.continue
用法
一旦遇到continue关键字,跳过当前循环剩余的内容,直接进行下一次循环
for(int i = 1 ; i <= 5 ; i++){
if(i == 2){
continue;//continue关键字后的内容不会被运行
System.out.println(i);//当 i 等于 2 时,这一行以及后的内容都不会被运行
}
System.out.println(i);
//打印结果为:
// 1
// 3 没有 2
// 4
// 5
}
七、死循环和嵌套循环
1.死循环
1.for
for(初始化语句;布尔表达式;/*步进表达式*/)
当不写步进表达式时,初始化语句一直满足布尔表达式,造成无限循环
2.while(标准格式)
while(条件判断){
循环体;
}
当while的条件判断,为true时,会无限循环
2.嵌套循环
1.定义
指一个循环体里有另外一个循环。比如for循环里面还有一个for循环,这就是嵌套循环。
总循环次数=外循环次数*内循环次数
2.练习
案例(1)
要求:
打印一天里的每一分钟
.
案例分析:
1.先使用一个for循环打印24小时
2.再使用一个for循环打印60分钟
3.将二者合并
for(int hour = 0 ; hour <= 24 ; hour++){
for(int minute = 0 ; minute <= 60 ; minute++){
System.out.println(hour+"时"+minute+"分");
}
}
案例(2)
要求:
打印乘法口诀表
for(int i = 1 ; i <= 9 ; i++){
for(int j = 1 ; j <= i ; j++){
System.out.print(j+"*"+i+"="+(i*j)+",");
}
System.out.println("");
}