2015-10-11 245 views
-2

據我所知,無論是C#還是Java,條件語句和循環語句中的邏輯都是相同的。While/do-while循環不會結束

class WhileLoops { 

public static void main(String args[]){ 


Scanner input = new Scanner(System.in); 
String answer = ""; 
/*do{ 

    System.out.println("Will you be my girlfriend?(Yes/No)"); 
    answer = input.nextLine(); 
    }while(answer != "Yes" && answer != "Yes");*/ 

while(answer != "Yes" && answer != "yes") { 

    System.out.println("Will you be my girlfriend?(Yes/No)"); 
    answer = input.nextLine(); 
    } 

System.out.println("I promise to make you feel special."); 

    } 
} 

,你可以在上面我用DO-而與代碼中看到,而只設置任一作爲評論的時候我會編譯和運行。

這是當我運行該程序會發生什麼: 1

+1

你的代碼寫出的圖像?請將您的示例輸入和輸出複製到您的問題中!這裏不需要圖像。 – usr2564301

+0

加載困難嗎?好的,下次再謝謝你:) – Andre

回答

2

使用.equals()方法。 所以,

while(answer.equalsIgnoreCase("yes")) {... } 

這樣做的原因是Java使用==操作時比較引用。當比較兩個字符串時,它們指向內存中的不同位置,因此比較失敗。

equals()(和equalsIgnoreCase())方法比較內存塊的實際內容。

注意:這隻適用於引用類型(如字符串和其他類)。值類型(如int和float等)可以與通常的equals操作符進行比較。

+0

感謝您的具體和翔實的答案!高度讚賞:) – Andre

0

使用此:

while(!answer.toLowerCase().equals("yes")) 
+0

感謝您的回答:) – Andre