Java 循环结构(while、do-while、for)
一、while循环结构
1. 语法结构
初始值;
while(循环条件){
//循环操作;
//迭代部分
}
2. 执行规律
(1)执行1次初始值操作。
(2)判断循环条件,
如果循环条件满足,执行循环操作代码,循环操作执行完,进行迭代,迭代后再次去判断循环条件是否满足;
循环条件不满足,则结束整个循环结构的执行,继续执行循环结构之后的代码。
3. 注意事项
(1)初始值只执行1次。
(2)循环条件为布尔值,要么为true,要么为false。
(3)迭代部分的作用是改变循环条件的变量值,从而让其在某一时刻不满足循环条件,结束循环结构。如果没有迭代部分,容易出现死循环,要尽量避免使用死循环。
public static void main(String[] args) {
//使用while循环结构输出100遍“好好学习,天天向上”
//初始值
int i =1;
while(i<=100){//循环条件
System.out.println("第"+i+"遍:好好学习,天天向上!");//循环操作
i++;//迭代部分:改变i的值,让i在某一时刻不满足循环条件,结束循环结构
}
System.out.println("程序执行完毕");
}
二、do-while循环结构
1. 语法结构
初始值;
do{
循环操作代码
迭代;
}while(循环条件);
2. 执行规律
(1)执行一次初始值代码。
(2)先执行一次循环操作和迭代,然后判断循环条件是否满足,
如果循环条件满足,则继续执行循环操作和迭代;
如果循环条件不满足,则结束整个do-while循环结构,执行do-while循环结构后面的代码。
3. 注意事项
(1)do-while循环结构,是先执行一次循环操作,再判断循环条件,也就是说do-while循环至少会执行一次循环操作。
(2)while循环结构,是先判断循环条件,再根据循环条件的结果决定是否执行循环操作,如果第一次循环条件就不能满足,循环操作就一次都不执行。
public static void main(String[] args) {
/*
* 经过几天的学习,老师给张浩一道测试题,
* 让他先上机编写程序完成,然后老师检查是否合格。
* 如果不合格,则继续编写……
*/
Scanner input = new Scanner(System.in);
String answer;// 初始值;
do{
System.out.println("上机编程......");// 循环操作代码
System.out.println("测试是否合格?:");// 循环操作代码
answer = input.next(); // 迭代;
}while(!answer.equals("合格"));// 循环条件
System.out.println("继续努力......");
}
三、for循环结构
1. 语法结构
语法结构:
for(初始值;循环条件;迭代部分){
//循环操作代码
}
2. 执行规律
(1)先执行一次初始值代码。
(2)判断循环条件是否满足,
如果循环条件为true,则执行循环操作代码,执行完循环操作,进行迭代,迭代完再次进行循环条件判断,根据循环条件判断结果决定是否继续执行循环操作;
如果循环条件为false,则结束整个循环结构,继续往下执行循环结构后面的代码。
3. 注意事项
for循环也是先判断循环条件再决定是否执行循环操作。如果循环条件第一次就不满足,循环操作一次都不会执行。
public static void main(String[] args) {
// 输出100次“好好学习!
// 初始值;循环条件;迭代部分
for(int k =0;k<100;k++){
System.out.println("第"+(k+1)+"遍:好好学习,天天向上");
}
}
4. 常见问题
(一)初始值一定要声明才能使用,可以在for循环之上声明,也可以在for循环()里声明。
int i =0;
for (; i < 10; i++) {
System.out.println("这是 " + i);
}
(二)缺少循环条件,会进入死循环。
for(int i=0;;i++){
System.out.println("这是 "+i);
}
(三)缺少迭代部分,如果循环条件满足,会进入死循环。
for(int i=0;i<10;){
System.out.println("这是 "+i);
i++;
}
(四)缺少初始值、循环条件、迭代部分,程序进入死循环。
for(;;){
System.out.println("这是测试");
}