Java while循环永远不会进入循环

时间:2014-04-07 16:02:33

标签: java while-loop

我正在用java编写视频扑克,我需要询问玩家是否要从他们的手中删除任何卡片。我为此编写了一个while循环,但它的工作方式与它现在的方式不同。如果有人能把我送到正确的方向,我会很感激 - 我还是java的新手......谢谢。 (counter就在那里,玩家不会删除超过5张牌)

    String response = "y";
    int counter = 0;
    System.out.println("Remove any cards?");
    System.out.println("Enter y for 'yes' and n for 'no'");
    response = input.nextLine();
    while((response != "n") && (counter < 5))
    {

        System.out.println("Enter the number of a card to be removed (1-5)");
        int l = input.nextInt();
        p.removeCard(p.getHand().get(l-1));
        p.addCard(cards.deal());
        cards.incrementTop();
        counter ++;
        System.out.println("Card removed. More? Type 'yes' or 'no'");
        String answer = input.nextLine();
        if (answer == "no")
            {
                response = "n";
            }       
    }  

2 个答案:

答案 0 :(得分:5)

您无法使用!===来比较字符串。

使用.equals()

while(!("n".equals(response)) && (counter < 5))

这里也一样

if (answer == "no")

其他需要改进的事项

  • 用户可以在第一时间写“不”,现在它是如何完成的,它无法正常工作
    • 您要求用户写“不”,但检查“n”
  • N怎么样? Y'
  • 怎么样?没有? (提示:搜索.equalsIgnoreCase()

另一个提示:对yes/no使用布尔变量,更好更容易:)

答案 1 :(得分:2)

尝试使用String.equals()方法比较字符串。你的while循环应该是

 while(( !response.equals( "n" )) && (counter < 5))
  {
       //do Something 
  }