for循环与while循环的一点小区别
程序员文章站
2022-07-13 23:30:14
...
前言
今天做练习发现for循环和while循环的一点区别,直接上代码
需求
有一个容量为10L的空水桶。水桶的上面开始往里灌水,同时下面开始往出流水。第一分钟灌水的速度是1L/min,第二分钟灌水的速度是2L/min,第三分钟灌水的速度是3L/min,以此类推。而流水的速度固定是3L/min。那么几分钟之后,水桶里能保持灌满水的状态?
答案:7分钟。
代码实现
- for循环
public class T7{
public static void main(String[] args){
int vol = 0;
int i ;
for(i=1;vol<10;i++){
vol = (i<=3)?0:(vol+i-3);
}
System.out.println((i-1)+"分钟灌满");
}
}
因为第7分钟灌满后,虽然没有继续执行循环体,但是i又加了1,所以输出的时候实际上是i-1分钟。
- while循环
public class T6{
public static void main(String[] args){
int vol = 0;
int i = 1 ;
// while循环实现
while(vol<10){//vol等于10时不执行语句体,所以此处为<
//注意一下两个语句的顺序
i++;
vol += i - 3;
//或者
//vol += i - 3;
//i++;
//输出时i-1分钟灌满
if(vol < 0){
vol = 0;
}
}System.out.println(i+"分钟灌满");
}
}
先执行i++,则i分钟灌满。后执行i++,则i-1分钟灌满。
总结
来看一下for循环和while循环的格式:
for:
for(初始化语句;条件判断语句;条件控制语句) {
循环体语句;
}
执行流程:
1:执行初始化语句
2:执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
3:执行循环体语句
4:执行条件控制语句
5:回到2继续
while
初始化语句;
while(条件判断语句) {
循环体语句;
条件控制语句;
}
执行流程:
1:执行初始化语句
2:执行条件判断语句,看其结果是true还是false
如果是false,循环结束
如果是true,继续执行
3:执行循环体语句
4:执行条件控制语句
5:回到2继续
结论:
for循环中的执行顺序是一定的,也就是先执行循环体语句后执行条件控制语句。
while循环中的执行顺序确实和代码顺序有关,循环体语句和条件控制语句哪个在前就先执行哪个。
本案例的关键则是,vol赋值语句与vol判断语句之间不能有i++,否则输出结果错误。
推荐阅读
-
Python跳出循环语句continue与break的区别
-
详谈js中标准for循环与foreach(for in)的区别
-
javascript与jquery中跳出循环的区别总结
-
C++中for循环与while循环的区别总结
-
java中while循环、do....while循环、for循环三者的区别以及用法
-
8、循环(while循环、do while循环、for循环、break与continue),while和do-while区别
-
for循环与while循环的一点小区别
-
break与continue在循环中的区别
-
jQuery中的for循环var与let的区别
-
Python的for循环与while语句