1、while循环
语法:
while ( 循环条件 ) {
循环操作
}
特点:
先进行条件判断,如果条件成立,执行循环操作,如果条件不成立,循环操作一次都不执行
注意:
在循环体操作中,要控制循环条件变量的变更(否则死循环)
循环体操作只有一条语句,大括号可以省略(不建议省略)
2、do...while循环
语法:
do {
循环操作
} while ( 循环条件 );
特点:
先执行循环体操作,后执行条件判断,不论条件是否成立,循环操作至少执行一次
注意:
while后面要分号结尾
3、for循环
语法:
for(参数初始化; 条件判断; 循环变量值变更){
// 循环体
}
执行顺序:
先初始化-->条件判断-->执行循环体-->循环变量变更
变更之后,再做条件判断,成立,执行循环体,循环变量变更,直到条件不成立
注意点:
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循环