2015-03-19 98 views
1

我有下面的Java程序。无法打印输出

public class A{ 

    public static void main(String[] args) { 

     double C = 500.0; 
     int init = 0, incr = 0; 

     while (init < C) { 
      init = incr + 2; 

     } 
     System.out.println(init); 

    } 
} 

在这里,当我运行这个程序,它不会抛出任何错误以及不显示任何错误。在这里,当我完全禁用while块时,程序将运行并打印init(0)的值。

在这里,我甚至尝试将System.out.println(init);更改为System.out.println("Hello");,但仍未禁用while块,即使这不会被打印。

请让我知道为什么发生这个问题,并在我的代码错误(如果是这样,请让我知道如何解决它)或任何其他帮助。

谢谢,

勒凯什

+0

如果您尝试使用调试器,它会让您的生活变得更加轻松。 – OPK 2015-03-19 12:21:01

回答

1

而不是init = incr + 2; 它应该是init = init + 2;

因为在你的程序中,你只是将inti值增加到2次迭代,但是如果你使用init = init + 2,它会将init值增加到499,然后从while循环中退出。

+1

public class A { public static void main(String [] args){ double C = 500.0; int init = 0,incr = 0; while(init 2015-03-19 12:24:00

6
 init = incr + 2; 

应该是

 init = init + 2; 

否则循环永远不会终止,因为incr + 2始终是2

+0

嗨,伊兰,感谢您的回复,在这里我可以做一些像'init = init + 2;'和下一行'incr = init',这会运行还是与上面的错误一样? – user3872094 2015-03-19 12:10:01

+0

@ user3872094为什么你需要两个变量?另外,'init + = 2'用于多余的糖。 – tne 2015-03-19 12:10:40

+0

@ user3872094您不会对'incr'做任何事情。你为什么要为它分配'init'的值? – Eran 2015-03-19 12:11:35

1

改变它给init = + INIT 2。因为每次你增加incr的价值和确定初始值。

1

将其更改为init = init +2。 。

+0

请解释问题代码出了什么问题。 – VedX 2015-03-19 12:37:07