日期:2014-05-20  浏览次数:20686 次

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循环中有循环条件且条件满足循环条件当然可运行
------解决方案--------------------
探讨
java文件中

public class Main{
public static void main(String[] args) {
int n = 100;
for(;;) {
}
System.out.println(n); 永远不会执行
}
}



public class Main{
public stat……

------解决方案--------------------
这个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循环的(定义; 继续循环的条件;步进);