循环在生活中随处可见,循环语句可以在满足循环条件的情况下,反复执行某一段代码。这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
PS:在使用循环之前,需要先搞清楚“什么时候要做什么事”。因为循环不能一直不停。所有的循环结构嵌套不要多于三层,循环一定要有循环条件
循环结构的组成:
1.初始化语句。
一条或者多条语句,这些语句完成一些初始化操作。
2.判断条件语句。
这是一个boolean 表达式,这个表达式能决定是否执行循环体
3.循环体语句。
这个部分是循环体语句,也就是我们要多次执行的代码块
4.迭代
这个部分是改变循环变量值的,让循环能在合适的时候退出
一、for循环
for循环主要用于循环次数已知的情况下
for(声明循环变量; 判断循环条件; 迭代){
执行循环代码
}
//执行顺序:声明循环变量——>判断循环条件——>执行循环代码——>迭代——>判断循环条件......
案例
public static void main(String[] args) {
// 控制台输出1~5
for (int i = 1; i < 6; i++) {
System.out.println(i);
}
System.out.println(" ");
// 控制台输出5~1
for (int i = 5; i >=1; i--) {
System.out.println(i);
}
// 控制台输出1~100的和
int sum=0;
for (int a = 1; a < 101; a++) {
sum += a;
}
System.out.println(sum);
}
PS:
- 判断条件语句的结果是一个boolean类型
- 循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略
- for循环中的循环变量在循环外部无法使用
二、while循环
while循环主要用于循环次数未知的情况下
声明循环变量
while(循环判断){
被循环的代码块
迭代
}
案例:
// 世界最高山峰是珠穆朗玛峰(8844.43米=8844430毫米),假如我有一张足够大的纸,它的厚度是0.1毫米。请问,我折叠多少次,可以折成珠穆朗玛峰的高度?
//定义一个变量接收计算后的值
int count = 0;
//定义纸张厚度
double paper=0.1;
//定义珠穆朗玛峰高度
int zhufeng=8844430;
while (paper<=zhufeng){
// paper=paper*2
paper *=2;
count++;
}
System.out.println("折叠"+count+"次,可以折成珠穆朗玛峰的高度");
for循环语句和while循环语句可以等价转换,循环需要的内容只是换了位置而已。
不同点:
1. 在for循环中声明的循环变量无法在循环外部使用,而while循环却是在循环结构外部声明的循环变量,所以即便循环结束,也可以继续使用。
2. for循环的循环变量在循环结束后会直接被销毁,更合理的使用内存空间。
3. for和while的结构不同
三、do...while循环
do...while循环也是while循环,所以它也用于循环次数未知的情况下,但它与while循环的区别是,它会优先执行一次循环体的内容
//初始表达式1
do {
//循环体2
}while(条件表达式3);
//执行顺序:12->32->32->32->...
案例
public static void main(String[] args) {
int x=1;
do {
System.out.println("helloworld");
x++;
}while(x<=10);
}
四、三者的总结及区别
五、关键字 break,continue,return
break是退出循环。当循环中代码执行到break关键字时,会立即退出循环,继续执行循环结构之后的代码。
执行顺序:
continue是跳过本次循环。当代码执行遇到continue时,会将本次循环终止,但是循环结构不退出,继续执行迭代部分并开始下一次循环。
执行顺序:
return是退出方法。当程序执行遇到return时,整个方法都会终止。则,循环结构之后的代码,也无法运行。
return后可以携带表达式,可以将表达式的结果作为方法的结果反馈给方法的调用者。