2011-03-06 138 views
1

考慮下面的代碼段用do while循環:do while循環在Java中

int x = 11, y = 34, z = 14, limit; 

do { 
     y + = z; 
     z++; 
     x++; 
} while (x < limit); 

System.out.println("x=" + x + " y=" + y + " z=" + z); 
  1. 什麼是輸出,如果限制是15?

  2. 編寫使用一個for循環,不完全一樣的東西,無論價值限制有什麼的代碼段。

我不完全知道爲什麼在system.out報價就是這樣。

任何幫助表示讚賞

+1

如果這是家庭作業,請您將其標記爲這樣? – 2011-03-06 03:16:47

+1

我不確定爲什麼那些引號是這樣的 - 它們不是有效的字符串文字分隔符。 – 2011-03-06 03:19:33

+0

他們可能是這樣的,因爲他把它從他的家庭作業中複製粘貼出來 – 2011-03-06 03:22:52

回答

1

您的代碼具有智能引號字符(),這是不正常的報價,而不是由Java語言的認可。

字符更改爲"

+0

好的,謝謝我要去試試這個...因爲我把它放在了C編譯器,它不會運行 – John 2011-03-06 03:25:04

1

我認爲它能夠更好地嘗試自己。 一些提示:

1)做{}(同時)循環第一,然後執行塊檢查條件。在你的問題,如果限制爲14(X < 14當x = 13是真實的),所以它會執行第14次了。

2),而(){};循環檢查在塊被執行之前。

3)for循環是相同的do while:的for循環的步驟是:

1)設置的計數器 2)EXCUTE塊 3)檢查該條件 4)遞增計數器語句

希望這有助於

1

一個do ... while循環會一直執行一次,一旦它的執行,將檢查,看看是否在while()條件是真還是假。如果它是真的,它會再次執行(從do開始)。

如果您不給它一個值,您可能還想看看int類型變量將被初始化爲。這也涉及到這個問題。

希望有所幫助。

+0

感謝讚賞 – John 2011-03-06 03:43:32

1

我建議你做一個表是這樣的:

    x y z limit 
Initialization 11 34 14 
Iteration 1 
Iteration 2 
... 

現在經過環一步一步,通過反覆迭代,看看會發生什麼。

2

我發現最好的方法是取出一支鉛筆和紙,並逐行閱讀代碼。爲了幫助進行可視化,請繪製一些代表您擁有的變量以及存儲在其中的內容的框。

{ 
    y += z; // x[11] y[48] z[14] 
    z++;  // x[11] y[48] z[15] 
    x++;  // x[12] y[48] z[15] 
} 

然後只要按照循環,直到你打的時候。

傳統的for循環結構是for(start; end condition; increment)。希望有所幫助。

1
int x = 11, y = 34, z = 14, limit; 
//You must have initialize limit variable 
// If you don't do that, code will not be compilable. 
// You must initialize local variables before use. 
limit = 15; //Initialize limit variable 
do { 
     y + = z; 
     z++; 
     x++; 
     //If you want to trace values at each iteration then 
     //System.out.println("x = " + x + " y = " + y + " z = " + z); 
} while (x < limit); 

System.out.println("x = " + x + " y = " + y + " z = " + z); //Edited line 
+0

不,如果本地'limit'變量在使用前未初始化,代碼甚至不會編譯。 – 2011-03-06 13:25:35

+0

@PaŭloEbermann - 是的你是對的。我更新了我的評論。 – 2011-03-07 05:41:06