为什么要有循环结构
如果代码中出现了大量的重复的或者有规律的功能,会有以下问题:
1.代码臃肿
2.阅读性极差
3.代码维护性极差
解决方案:
使用循环可以解决这些问题
循环需要三个条件:1.初始化值 2.循环条件 3.终止条件
一、while循环
语法格式:
while (条件) {
语句体
}
执行流程:
代码执行到while以后,首先判断while后面的条件是否为true,如果为true的话,就执行大括号里面的语句体,之后再回到while关键字,再次判断小括号里面的条件是否为true,如果为true的话,就继续执行大括号里面的语句,再回到while,再次判断小括号直到小括号里面的条件为false为止,退出循环。
public class Demo4 {
public static void main(String[] args) {
int num = 0;//初始值
while(num <= 3) {
System.out.println("helloworld");
num++;
}
/*分析:
* num = 0 0 < 3 true helloworld num++
* num = 1 1 < 3 true helloworld num++
* num = 2 2 < 3 true helloworld num++
* num = 3 3 < 3 false 退出循环
* */
}
}
public class Demo {
public static void main(String[] args) {
int num = 123456;
while(num != 0){
System.out.println(num %10);
num = num /10;
}
}
//将一个整数倒叙打印
}
二、do-while循环
语法格式:
do {
语句体
}while(条件);
执行流程:
程序如果运行到了do-while的时候,首先执行do大括号后面的代码(语句体),然后再判断while后面的条件,如果是个false,循环就结束了。如果是true,就继续执行ddo大括号后面的代码。
public class Demo5 {
public static void main(String[] args) {
/*分析:
* num = 4 do之后的大括号 吃饭睡觉打豆豆 num-- 3 > 0 true
* 再次回到 do 之后的大括号吃饭睡觉打豆豆 num-- 2 > 0 true
* 再次回到 do 之后的大括号吃饭睡觉打豆豆 num-- 1 > 0 true
* 再次回到 do 之后的大括号吃饭睡觉打豆豆 num-- 0 > 0 false
* */
int num = 4;//初始化的条件
do {
System.out.println("吃饭睡觉打豆豆");
num--;//循环条件
} while (num > 0 );
}
}
三、for循环结构
语法格式:
for(表达式1; 表达式2; 表达式3) {
语句体
}
执行流程:
代码执行到for时,表达式1是第一次的初始化的值。看表达式2,如果表达式2为true,执行语句体,再执行表达式3,然后判断表达式2,表达式2为true,则继续执行语句体,再执行表达式3。一直循环下去即可。
public class Demo6 {
public static void main(String[] args) {
/*分析:
* i = 0 0 < 4 true 打印hello i++
* i = 1 1 < 4 true 打印hello i++
* i = 2 2 < 4 true 打印hello i++
* i = 3 3 < 4 true 打印hello i++
* i = 4 4 < 4 fasle 循环结束
* */
for (int i = 0; i < 4; i++) {
System.out.println("hello");
}
}
}