标题: 大家帮忙看两个程序 [打印本页] 作者: xiaocai 时间: 2012-4-9 17:34 标题: 大家帮忙看两个程序 class Testque4 {
public static void main(String[] args) {
int index = 0;
while (index <= 1000) {
index = index + 5;//?????
if (index == 400) {
continue;
}
System.out.println("The index is " + index);
}
}
}
class Testque3 {
public static void main(String[] args) {
int index = 0;
while (index <= 1000) {
if (index == 400) {
continue;
}
System.out.println("The index is " + index);
index = index + 5;//?????
}
}
}
为什么第一个程序从5显示,跳过400,到1005结束;而第二个从0开始,到395结束??作者: 邓海涛 时间: 2012-4-9 17:51
第一个程序当你每次满足while条件以后进入循环体,把index的值加上5赋值给index,所以每次打印的时候,index的值都会比进入循环刚开始的时候多5,if语句里面的条件是当index=400的时候就结束剩下的语句开始下一次循环,所以400被跳过,此时index的值应该是395,最后一次循环的时候index刚刚进入循环条件的时候是1000,进入循环体值增加了5,所以最后就是以1005打印结束作者: 邓海涛 时间: 2012-4-9 17:54
第二个程序最后结束的时候打印的是确实是395,作者: 黄或俊 时间: 2012-4-9 17:58
continue关键字——结束本次循环,继续下次循环。该语句单独存在时,下面不可以定义语句,因为也执行不到 作者: 邓海涛 时间: 2012-4-9 18:00
顺便补充下,continue语句可以强迫程序跳到循环的起始处,当程序运行到continue语句时,会停止运行剩余的循环主体,而是回到循环的开始处继续运行。作者: 黑马-刘昌文 时间: 2012-4-9 18:12
第一个程序因为continue只会结束本次循环,当index=400时结束本次循环,即以后的代码都不会执行了,不会打印出400,接着再进入循环直到index=1000,执行index = index + 5,输出1005,再执行循环时就不满足条件了!
第二个程序当index=395时 ;打印出index=395,然后执行 index = index + 5,index=400,执行到 if (index == 400) { continue;} 会跳出本次循环,再进入循环,重复执行上个操作,变成死循环!