2015-09-27 38 views
0

我有一個大酒杯類這個while循環:我怎麼會得到一個while循環,終止當用戶輸入「無」

while (playerSum < 21) { 
    System.out.println("Would you like another card?"); 
    String input; 
    System.out.flush(); 
    input = in.readLine(); 
    if (input.equalsIgnoreCase("yes")){ 
    int card3; 
    Random r3 = new Random(); 
    card3 = r3.nextInt(11 - 2 + 1) + 2; 
    switch (card3) { 
     case 2: System.out.println("You were dealt a Two"); break; 
     case 3: System.out.println("You were dealt a Three"); break; 
     case 4: System.out.println("You were dealt a Four"); break; 
     case 5: System.out.println("You were dealt a Five"); break; 
     case 6: System.out.println("You were dealt a Six"); break; 
     case 7: System.out.println("You were dealt a Seven"); break; 
     case 8: System.out.println("You were dealt a Eight"); break; 
     case 9: System.out.println("You were dealt a Nine"); break; 
     case 10: System.out.println("You were dealt a Ten"); break; 
     case 11: System.out.println("You were dealt a Ace"); break; 
    } 
    playerSum += card3; 
    } 
} 

我希望當用戶輸入一個「不」的循環結束當被問及他是否會想要另一張卡片時。目前如果我輸入的只是「是」,它會繼續問`你想要另一張卡嗎?'。我明白爲什麼會發生這種情況,但我不知道如何解決這個問題。提前致謝。

+0

我建議添加'else if input.equalsIgnoreCase(「no」))break;' – paulsm4

回答

1

將一個else添加到if語句的結尾並跳出循環。

if (input.equalsIgnoreCase("yes")){ 
    int card3; 
    Random r3 = new Random(); 
    card3 = r3.nextInt(11 - 2 + 1) + 2; 
    switch (card3) { 
     case 2: System.out.println("You were dealt a Two"); break; 
     case 3: System.out.println("You were dealt a Three"); break; 
     case 4: System.out.println("You were dealt a Four"); break; 
     case 5: System.out.println("You were dealt a Five"); break; 
     case 6: System.out.println("You were dealt a Six"); break; 
     case 7: System.out.println("You were dealt a Seven"); break; 
     case 8: System.out.println("You were dealt a Eight"); break; 
     case 9: System.out.println("You were dealt a Nine"); break; 
     case 10: System.out.println("You were dealt a Ten"); break; 
     case 11: System.out.println("You were dealt a Ace"); break; 
    } 
    playerSum += card3; 
    } else { 
break; 
} 

注:這將打破循環當用戶輸入什麼比「是」的不同。如果你想突破只有否,請使用else if

+0

好的,那修復了一切,非常感謝! – Brosaken

1

你可以簡單地通過增加

break; 

解決這一所以看起來像

if (no) { break;} 

希望這有助於。