2016-10-03 236 views
-1

我無法解釋類中的一段代碼。該代碼是:'x = x + 2'是什麼意思?在這段代碼中?

class PoolPuzzleOne { 
    public static void main(String[] args) { 
     int x = 0; 
     while (x < 4) { 
      System.out.print("a"); 
      if (x < 1) { 
       System.out.print(" "); 
      } 
      System.out.print("n"); 

      if (x > 1) { 
       System.out.print("oyster"); 
       x = x + 2; 
      } 
      if (x == 1) { 
       System.out.print("noys"); 
      } 
      if (x < 1) { 
       System.out.print("oise"); 
      } 
      System.out.println(""); 
      x = x + 1; 
     } 
    } 
} 

結果是:

%的Java PoolPuzzleOne
噪聲
惹惱
牡蠣

我很困惑,什麼x = x + 2;後指「牡蠣」打印輸出。這是否意味着這將以'2'爲增量而不是x > 1的特定測試的傳統增量'1'?

+0

這意味着在檢查下一個條件(x == 1)之前,x值將在System.out.print之後以2遞增。 – Dez

+0

java區分大小寫。確保你所有的代碼都是正確的格式。 – Javant

+0

發佈的代碼甚至沒有編譯,請注意區分大小寫,並注意'('後面的類名應該是'{'。 – pleft

回答

0

當您使用如下操作時:x = x + 2;然後您將該值添加到該變量。

x是數字(int, double, float, Integer, etc)的情況下,無論您如何訂購,結果總是相同。

例如:

x = x + 2;相同x = 2 + x;和相同x += 2;

這與字符串幾乎相同。

如果你有這樣的代碼:

String text = "test"; 
text = text + 1; 
System.out.println(text); 

輸出將是"test1"

對於此代碼:

String text = "test"; 
text = text + "1"; 
System.out.println(text); 

輸出也將是"test1"

對於這個代碼:

String text = "test"; 
text += "1"; 
System.out.println(text); 

輸出也將是"test1"

但這代碼:

String text = "test"; 
text = "1" + test; 
System.out.println(text); 

將輸出"1test"

此外,當你增加一個號碼,然後代替x = x + 1;可以使用x++;++x;並且當您遞減一個數字時,您可以使用x--;或而不是

x++;++x;之間的差異是何時添加會發生。 x++表示添加將在當前操作之後發生,而++x表示添加將在當前操作之前發生。

爲了解釋這意味着什麼:如果我們有說法System.out.println(x++);然後x將首先打印,然後將遞增,而如果我們使用System.out.println(++x);x值將發生變化,然後將它打印出來。

這意味着,對於這樣的代碼:

int x = 1; 
int y = 1; 
System.out.println(x++); 
System.out.println(x); 
System.out.println(y++); 
System.out.println(y); 

的輸出將是:

這同樣適用於所述-- ope除了不是加1而是減1之外。

+0

謝謝您的幫助! –

0

x = x + 2用於終止您的while循環。如果您注意到您的while循環僅循環使用x < 4,但在打印「牡蠣」時x必須至少大於1。在牡蠣之後似乎沒有其他東西可以打印出來,所以你在x上添加2來使循環終止。

+0

感謝您的回覆! –