2013-05-29 228 views
-3

我無法找到導致我的while循環不工作的問題。while循環:需要幫助

當我運行該程序,並按下單選按鈕,我得到這個錯誤代碼:

語法錯誤,插入「而(表達);」完成DoStatement

這裏是我的循環:

int i = 1; 
boolean x; 
//for (i = 0; i < 6; i++) { 
do{ 
    warning.setText("   FEL!");   
    i++; 
    while(x == false);{ 

    if(e.getSource() == buttonOK){ 

     if(buttonDollar.isSelected() == false){ 
      x = false; 
     } 
     if(buttonEuro.isSelected() == false){ 
      x = false; 
     } 
     if(buttonPund.isSelected() == false){ 
      x = false; 
     } 
     if(buttonKrona.isSelected() == false){ 
      x = false; 
     } 
     break; 

     } 
    } 
} 
+2

您需要'while'子句來完成'do-while'語句。如果你想永遠循環,那麼使用'do {...} while(true)'。或者只是「while(true){...}」。附:這是什麼語言? – zimdanen

+0

x未初始化 – rajansoft1

+0

@ rajansoft1:根據語言,應初始化爲默認值。 – zimdanen

回答

1

你失蹤了 「而」 元素

從Sun網站(我猜測,這是JAVA)

do { 
    statement(s) 
} while (expression); 
語法
+0

好的,「聲明」是什麼樣的? – user2422314

+0

@ user2422314:'statement(s)'是你在'do {'和關閉'}'之間的示例代碼。 – zimdanen

+5

爲了能夠編寫代碼,您需要知道「語句」這個詞的意思。 – UmNyobe

1

我覺得你需要一個閉合的大括號,然後

do{ 
warning.setText("   FEL!");   
i++; 
}while(x == false); 
+0

我試過了,但它仍然給我錯誤代碼 – user2422314

+0

while(x == false); {你有沒有嘗試刪除這個花括號在此之後的聲明除了添加之前?看起來好像後來的那個人沒有理由在那裏。也許試試這樣:do { warning.setText(「FEL!」); i ++;} while(x == false); – Josh

+0

我試過了,但它顯示了相同的錯誤代碼 – user2422314

0

整個結構都錯了,你希望做的東西很簡單:

if(e.getSource() == buttonOK) 
{ 
    if(!buttonDollar.isSelected() && !buttonEuro.isSelected() 
     && !buttonPund.isSelected() && !buttonKrona.isSelected()) 
    { 
     warning.setText("   FEL!");   
    } 
} 

從用戶的角度來看,這是更好地確保一個單選按鈕總是選擇(因爲這是你的用戶將可能期望)。