2012-05-30 85 views
-1

我的「if」語句似乎沒有工作,無論我放在哪裏似乎總是默認爲我的「其他」語句。例如,如果我將整數「1」或「2」與其相關聯的「if」語句放入,它仍默認爲「else」。任何幫助,將不勝感激:)如果聲明不起作用,跳過其他人

String number = JOptionPane.showInputDialog("Would you like a custom loop count or an infinite? 1. Custom 2. Infinite"); //test choice 
n = Integer.parseInt(number); 
while (n < 0 || n > 2) { 
    if (n == 1) { 


     String number2 = JOptionPane.showInputDialog("How many times would you like to loop?"); 
     integer = Integer.parseInt(number2); 
     while (integer < 0) { 
      while (x < integer) { 
       g.drawString("hi", 200, y); 

       x += 1; 
       y = y + 40; //test 
      }//end while 
     } 
    }//end if 
    else if (n == 2) { 
     while (1 == 1); 
    }//end if 
    else; 
} 
g.drawString("Please pick a valid choice", 200, 200); 
+0

'while(1 == 1);'? –

+0

你知道,正確的縮進會很棒...... – ThiefMaster

+0

這段代碼只是一大堆bug。遵循約定並注意「;」:它們有意義。 –

回答

7

如果之後的塊,就知道n要麼< 0或> 2。因此,它不能是等於1或2,else塊被執行,其中恰巧是空的,因爲它後面跟着一個;

那不是提在你的代碼中發現;-)

PS的幾個奇怪的陳述:我已經編輯您的文章,以適當的縮進添加到您的代碼,包括{}。現在看起來可能會更清晰一些。

0
else; 

這是非常錯誤的。 您沒有else語句,這意味着下面的代碼行被執行。

這條線很不好過:

while (1==1); 

請縮進以下的規範和刪除不必要的「;」。執行

while (n<0 || n>2)