java循环结构
For循环
什么是循环
循环在生活中随处可见,循环语句可以在满足循环条件的情况下,反复执行某一段代码。这段被重复执行的代码被称为循环体语句,当反复执行这个循环体时,需要在合适的时候把循环判断条件修改为false,从而结束循环,否则循环将一直执行下去,形成死循环。
PS:在使用循环之前,需要先搞清楚“什么时候要做什么事”。因为循环不能一直不停。
循环的作用
for循环可以在循环条件满足的情况下,反复执行{}大括号内的代码块。
执行顺序:声明循环变量——>判断循环条件——>执行循环代码——>迭代——>判断循环条件…此段代码意义:声明钱的变量,判断是否挣够500万,如果没挣够,继续工作,工作后钱增加,再进行判断。
循环结构的组成:
1.初始化语句。
一条或者多条语句,这些语句完成一些初始化操作。
2.判断条件语句。
这是一个boolean 表达式,这个表达式能决定是否执行循环体
3.循环体语句。
这个部分是循环体语句,也就是我们要多次执行的代码块
4.迭代
这个部分是改变循环变量值的,让循环能在合适的时候退出
PS:判断条件语句的结果是一个boolean类型
PS:循环体语句如果是一条语句,大括号可以省略;如果是多条语句,大括号不能省略。建议永远不要省略
PS:for循环中的循环变量在循环外部无法使用
for循环的使用方法
语法
for(声明循环变量;循环条件;迭代){
被循环的代码块
}
套用语法
for(int money = 0;money < 500万; money++){
继续工作
}
执行流程
循环结构
public class TestCar {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
for (int money = 0; money < 500; money++){
System.out.println("继续努力工作...");
}
}
}
分析:由于钱不够需要继续工作,所以继续工作是要重复执行的代码块。
而此块代码是否要重复执行取决于钱是否挣够,所以钱是否挣够是循环判断条件。
而每天工作完成后工资会增加,所以迭代是工资增加。
while循环
语法
声明循环变量
while(循环判断){
被循环的代码块
迭代
}
套用方法
int money = 0;
while(money < 500){
继续工作
money++;
}
while循环的使用方法
for循环语句和while循环语句可以等价转换,循环需要的内容只是换了位置而已。
不同点:在for循环中声明的循环变量无法在循环外部使用,而while循环却是在循环结构外部声明的循环变量,所以即便循环结束,也可以继续使用。但更推荐使用for循环,for循环的循环变量在循环结束后会直接被销毁,更合理的使用内存空间。
执行流程
do-while循环
语法
声明循环变量
do{
被循环的代码块
迭代
}while(循环判断);
套用语法
int money = 0;
do{
继续工作
money++;
}while(money < 500);
do-while循环的使用方法
根据刚才的操作,for循环与while循环都是先进行循环条件判断,在执行循环内的代码。而do-while循环更加特殊,它会先执行循环内的代码,再进行循环条件的判断。如果循环条件最一开始就不满足,for循环和while循环一次都不会执行,而do-while循环由于先执行循环体的原因,即便不满足也会执行一次。
三种循环的比较
for循环
for(声明循环变量;循环条件;迭代){
被循环的代码块
}
1.结构紧凑
2.书写规范
3.内存使用合理
4.可预知次数的循环
5.推荐使用
while循环
声明循环变量
while(循环判断){
被循环的代码块
迭代
}
1.语法宽松
2.适应各类循环
3.无法预知次数的循环
do-while循环
声明循环变量
do{
被循环的代码块
迭代
}while(循环判断);
1.优先执行循环代码
2.不常使用
break与continue
break
for(int i = 0;i < 500;i++){
System.out.print(“做俯卧撑”);
}
根据之前的操作经验,这样的语法只能让循环执行500次,却不能中途退出,而在现实中,中途退出的情况也有很多。
改后:
String jc = “还能坚持”;
for(int i = 0;i < 500;i++){
System.out.print(“做俯卧撑”);
System.out.print(“还能坚持吗?”);
jc = in.next();
if(jc.equals(“坚持不住”) ){
break;
}
}
break是退出循环。当循环中代码执行到break关键字时,会立即退出循环,继续执行循环结构之后的代码。
执行流程
continue
String jc = “还能坚持”;
for(int i = 0;i < 500;i++){
System.out.print(“做俯卧撑”);
System.out.print(“还能坚持吗?”);
jc = in.next();
if(jc.equals(“坚持不住”) ){
break;
}
}
由于需求的变化,我们不能直接退出循环,必须继续循环,但其间有一些循环代码还未执行完就开始执行下一次循环。
String jc = “还能坚持”;
for(int i = 0;i < 500;i++){
System.out.print(“俯卧”);
System.out.print(“还能坚持吗?”);
jc = in.next();
if(jc.equals(“坚持不住”) ){
continue;
}
System.out.print(“撑”);
}
continue是跳过本次循环。当代码执行遇到continue时,会将本次循环终止,但是循环结构不退出,继续执行迭代部分并开始下一次循环。
执行流程
比较
break:
1.退出,终止
2.可用在循环和switch
3.继续之后结构之后的代码
4.break之后不能写代码
continue:
1.跳过,继续
2.可用在循环
3.不退出循环,进行下一次循环
4.continue之后不能写代码