java循环的有关问题
java循环的问题,在线等java文件中public class Main{public static void main(String[] args) {int n 10
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,我经常这样用。
[解决办法]
[解决办法]
第一个for循环本身函数体是没错的,空参数(约束条件)的for等价于
for(;true;) {}是死循环的一种写法。
由于for循环没有结束条件,所以写在for之外的
“System.out.println(n); 永远不会执行 ”编译器指针永远在死循环里而无法达到故编译错误。
第二段等价于while(true);也是一种死循环的写法,因为n>0在当前函数内是表示“永真”,且没有循环
结束条件,同时,由于分号的原因,程序会在当前语句执行死循环。
至于后面的“System.out.println(n); ”编译通过的问题,个人比较偏向一楼的“第二段编译器不知道n是否会改值,认为System.out.println(n);有执行的机会,每次都判断”这个解释。
结论:第一个是编译错误,第二个一直执行死循环,无输出。