2015-09-27 39 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;} 

希望这有助于。