当前位置: 代码迷 >> Java相关 >> [讨论]这个会是死循环吗?
  详细解决方案

[讨论]这个会是死循环吗?

热度:407   发布时间:2006-08-09 15:34:59.0
[讨论]这个会是死循环吗?
public class A{
public static void main(String[] args){
boolean flag = false;
int i = 0;
do{
System.out.print(i++);
flag = i < 10;
continue;
}while(flag == true);
}
}
这个会是死循环吗? 执行了continue是到while 还是到do?
搜索更多相关的解决方案: false  public  continue  void  

----------------解决方案--------------------------------------------------------
以下是引用wxhwjsw在2006-8-9 15:34:59的发言:
public class A{
public static void main(String[] args){
boolean flag = false;
int i = 0;
do{
System.out.print(i++);
flag = i < 10;
continue;
}while(flag == true);
}
}
这个会是死循环吗? 执行了continue是到while 还是到do?

这里的有没有continue都一样,continue的意思是循环到continue后,不执行continue后的语句,直接跳到下一次循环


----------------解决方案--------------------------------------------------------
以下是引用NiceGirl在2006-8-9 16:28:26的发言:

这里的有没有continue都一样,continue的意思是循环到continue后,不执行continue后的语句,直接跳到下一次循环

你说的不完全...那么看这个程序...
public class Test{
public static void main(String[] args){
boolean flag = false;
int i = 0;
do{
System.out.print(i++);
continue;
//flag = i < 10;
//continue;
}while(flag == true);
}
}
你认为它是什么啊?


----------------解决方案--------------------------------------------------------
楼上两位真厉害,我运行了一下,
终于明白了
continue的意思是循环到continue后,不执行continue后的语句,
但要跳到while(flag == true);条件表达式判断后为真才跳到下一次循环.
如果不这样,就如楼猪的问题是个死循环.

下面的例子加了注释就没有给flag负值了.
判断时就用的flag的初值.所以只执行一次.


如二楼所说你这个程序有没有continue都一样的.
因为你加的注释应该只加在//continue上
第二个程序结果不同是因为你把修改flag值的语句注释了
不知我理解得对吗

[此贴子已经被作者于2006-8-9 17:53:26编辑过]


----------------解决方案--------------------------------------------------------
楼主以后多出个这些题
THANK YOU
谢了
----------------解决方案--------------------------------------------------------
以下是引用wxhwjsw在2006-8-9 15:34:59的发言:
public class A{
public static void main(String[] args){
boolean flag = false;
int i = 0;
do{
System.out.print(i++);
flag = i < 10;
continue;
}while(flag == true);
}
}
这个会是死循环吗? 执行了continue是到while 还是到do?

我不知道你想告诉我些什么?首先,你这句话问的就有问题,
do~while循环就是说无论条件是否满足,都至少执行一次循环,也就是说,循环执行一次后等同于while循环,
那你说这里跳到哪呢?


----------------解决方案--------------------------------------------------------
以下是引用wxhwjsw在2006-8-9 16:43:28的发言:

你说的不完全...那么看这个程序...
public class Test{
public static void main(String[] args){
boolean flag = false;
int i = 0;
do{
System.out.print(i++);
continue;
//flag = i < 10;
//continue;
}while(flag == true);
}
}
你认为它是什么啊?

continue是执行下一次的循环,不是重新开始循环。。


----------------解决方案--------------------------------------------------------
我觉得这个程序里的continue一点意义都没有啊,continue后面不能再有其他语句了,如果有,编译时候根本通不过的,说:unreachable statement.不知道楼主把continue加在那里什么意思呢。比较同意NiceGirl的说法。
----------------解决方案--------------------------------------------------------
你们看我帖了三楼的程序了吗??  如果你们说到下一次循环  那么do--while这个结构是先执行do吧  那你的意思不就是再跳到下次循环去做do了吗???

那么这不是一个死循环了吗?
----------------解决方案--------------------------------------------------------
四楼的理解是正确的
----------------解决方案--------------------------------------------------------
  相关解决方案