2015-03-19 109 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