for嵌套语句中,为甚么用while不行,用IF才对?

public class TestBreak {
public static void main(String[] arguments) {
int i=0;
for(i=0; i<=10; i++) {
while(i == 4) break;
System.out.println("i=" + i);

}
}
}

第1个回答  2011-08-05
break是结束本层循环的意思,如果你用if,当i==4时,结束了for循环,所以4以后就不输出了;
而用while的话,当i==4时,结束的是while循环,for循环也没有影响,还会继续输出4以后的内容。追问

运行时i==4也能输出,这是为什么?

追答

当i等于4时只是结束了while循环,而System.out.println("i=" + i);没有包含在while循环啊,它是在while循环外面的

第2个回答  2011-08-05
用while当然不行,因为和没用一样。语法的问题,要这样改
for(i=0;i<=10;i++)
{
if(i==4)
{
system.out.prin....;
break;
}
}追问

while为什么用和没用一样,能解释下吗?我初学不怎么懂。

第3个回答  2011-08-05
这种极品写法,我还是第一次见。无论从语意还是从功能上说,这样写,都是不妥当的。while主要出现在循环语句中,if用于于判断。i等于4的时候,i==4恒成立,会不会出现死循环?追问

不会,只是while不起作用

第4个回答  2011-08-05
break 可以跳出当前循环, 就是说只能跳出 while 循环,跳不出 for 循环追问

那i==4的时候为什么还能输出?

追答

只有 i==4 为真,才会执行break,跳出while循环;接着执行下一条语句:System.out.println("i=" + i);当 i != 4 的时候是不会进入while循环的。 如果用的是 if 的话就是直接跳出 for 循环,不再执行System.out.println("i=" + i);

本回答被提问者采纳
相似回答
大家正在搜