第四章:循环结构
1、while循环
语法:
while ( 循环条件 ) {
//循环操作
}
特点:
先判断条件,然后执行循环操作,循环可能不会执行
注意:
循环体内要控制循环条件,否则死循环(不能让循环恒成立)
当while循环操作只有一条语句,可以省略大括号,但是正常循环不建议省略
示例:
// 使用while循环进行打印50份试卷
// 声明循环变量
int count = 50;
while(count >= 1){
System.out.println("打印第" + count + "份试卷");
// count += 1;
// ++count;
count--;
}
2、do-while循环
语法:
do {
// 循环操作
} while ( 循环条件 );
特点:
先执行循环操作,再判断条件是否成立,即:不管条件是否成立,循环体至少执行一次
注意:
while循环条件括号后面,要有分号作为结束符。
示例:
// 程序执行循环,判断是否合格,不合格,进行学习
// 获取Scanner对象
Scanner input = new Scanner(System.in);
// 循环判定是否合格
do{
System.out.println("上午学习理论,下午上机练习!!");
System.out.print("成绩是否合格(y/n):");
String flag = input.next();
}while("n".equals(flag));
System.out.println("恭喜,成绩合格!!!");
input.close();
3、for循环
语法:
for(参数初始化; 条件判断; 循环变量值变更){
// 循环体
}
执行顺序:
1.先初始化–>2.条件判断–>3.执行循环体–>4.循环变量变更
变更之后,再做条件判断,执行循环体,直到条件不成立
注意点:
1、格式,代码规范,注意缩进
2、初始化变量可以写多个,但是作用域在循环内可见,如果需要循环外获取执行的变量值,需要定义在循环外
3、循环变量的变更也可以写在循环内部,不可以省略
4、条件判断不能省略,否则死循环
5、for(; ;){…}这个没有语法错误,但是会死循环,相当于while(true){…}
示例:输出加法表
// 系统输入
Scanner input = new Scanner(System.in);
// 定义加法的数值
System.out.print("请输入一个数值:");
int num = input.nextInt();
for(int i = 0, j = num; i <= num ; i++, j--){
// 输出加法表
System.out.println(i + " + " + j + " = " + (i+j));
}
常见错误示例:
// for循环常见写法:初始化和变量赋值是可以省略的,但是分号不能省
int i = 0;
// 两个分号不能省略,等同于while(i<10)
for (i < 10) {
System.out.println(i);
i++;
}
// 没有循环条件:语法不会报错,但是会造成死循环
int j = 0;
for(;;j++){
System.out.println(j);
}
// 没有变更循环变量:语法正常,但是也会造成死循环
int k = 0;
for(;k<10;){
System.out.println(k);
}
// for循环什么都不写:语法正常,但是也是死循环
for(;;){
System.out.println("测试");
}
4、三种循环的异同点:
相同点:
无论哪一种循环结构,都有4个必不可少的部分:
初始部分、循环条件、循环体、更新循环变量
不同点:
1、语法不同
2、执行顺序不同
while 循环:先判断,再执行
do-while循环:先执行,再判断
for循环:先判断,再执行
使用场景:
循环次数确定的情况,通常选用for循环
循环次数不确定的情况,通常选用while或do-while循环