java循环的问题,在线等
java文件中
public class Main{
public static void main(String[] args) {
int n = 100;
for(;;) {
}
System.out.println(n); 永远不会执行
}
}
public class Main{
public static void main(String[] args) {
int n = 100;
while(n>0);
System.out.println(n);
}
}
上面二段程序中,为什么第二段输出会运行,第一段就是错的呢,thanks
------解决方案--------------------第一段相当于while(true),直接编译成死循环,,第二段编译器不知道n是否会改值,认为System.out.println(n);有执行的机会,每次都判断
------解决方案--------------------第二段相当于while(true)陷入死循环
第一段for(;判定条件;)相当于for(;false;)
------解决方案--------------------
------解决方案--------------------while(n>0);相当于while(true){;}里面有个;号,相当于空语句,不执行,所以会往下继续执行,而第一个死循环,一直在里面执行,不往下执行
------解决方案--------------------你自己都注了永远不会执行
永远不会执行到的代码 编译器当然会警告你写错了
------解决方案--------------------好像两个都不执行吧
------解决方案--------------------for循环的要素(赋初值;判断结束的条件;变量变化){循环体}其中()中的条件缺一不可;while循环中有循环条件且条件满足循环条件当然可运行
------解决方案--------------------
------解决方案--------------------这个for循环和while循环,其实是一样的,只不过输出语句一个放到方法体里面,一个放到方法体外面,方法体里面的可以执行的死循环。在死循环后面,是不可达到的,故而编译是不通过的。
------解决方案--------------------你第一段程序,编译会出错,for循环括号里面包括()n初始值、n范围、n迭代部分。
你看你少了什么东西吧。
你第二段程序,拾死循环,你n初始值是100。而while循环的条件却是大于0.这不是死循环是什么。
------解决方案--------------------第一个语法就是错误的 所以报错
第二个语法正确,只不过是死循环,会一直运行下去,不断输出
------解决方案--------------------建议好好看看for while 这些语法的基础
------解决方案--------------------http://www.happyalaric.com资源下载区 去下点电子书看看
------解决方案--------------------怎么都在答非所问哦 , 第一段那个System.out.println(n); 不在for语句块里面,for又是死循环,怎么输出呢,你这样就能了吧
Java code
public static void main(String[] args) {
int n = 100;
for(;;) {
System.out.println(n);
}
}
------解决方案--------------------
我试了一下,结果是第一个编译就已经出错了,第二个编译可以过,执行的时候是死循环。
原因大概是,楼主写的第一个for循环三个条件都省略了,编译器能检查出来。
我试了一下,如果给for循环加上结束条件编译就能通过了。
------解决方案--------------------
for循环的(定义; 继续循环的条件;步进);
没有继续循环的条件, 当然会报错。
------解决方案--------------------
for循环第二个必须是判断boolean类型
------解决方案--------------------
怎么有人会认为第二个无法执行呢、、、java是zbrush老师教的么、、、这个相当于while(true),一直执行,想跳出就来个break,我经常这样用。
------解决方案--------------------