【问题标题】:Need a loop to repeat 3 times for a special condition需要一个循环重复 3 次以处理特殊情况
【发布时间】:2014-04-23 10:02:09
【问题描述】:

我遇到这种情况:用户必须为'x' 输入一个数字。如果值为>=0,则使用此坐标创建一个新游戏。如果用户输入负数,则会显示一条消息,他将有另一次机会,将有 3 次机会输入正确的数字,否则将没有游戏。我为此案例尝试了'if-statement',但效果不佳。有没有办法在循环中做到这一点?

【问题讨论】:

  • 您需要一个变量来跟踪允许用户再尝试多少次。
  • 你目前在做什么?

标签: java loops if-statement


【解决方案1】:
final static int NUMBER_OF_TRIES = 3;
boolean correctNumber = false;
int attemptNumber = 0;

while (!correctNumber)
{

    //get user input

    if (inputIsCorrect)
    {
        createANewGame();
        correctNumber = true;
    }
    else
    {
        System.out.println("Incorrect answer");
        attemptNumber++;
    }

    if(!inputIsCorrect && attemptNumber == NUMBER_OF_TRIES)
    {
        System.out.println("You have reached the max number of tries");
        System.exit(0);  //or whatever you want to happen
    }

 }

【讨论】:

  • for 循环不是更干净吗?
  • 也可以使用 for 循环,但它们看起来基本相同,唯一的区别是您可以删除 attemptNumber 变量,如果输入正确则使用 break 语句。在这种情况下,我个人更喜欢 while 循环,因为它似乎更适合要完成的工作。这确实是一个偏好问题。
  • 非常感谢!对我来说似乎还不错。我唯一不明白的是:我必须要求用户输入“x”,所以我声明,如果答案错误,他必须再次输入。如何在不再次更改变量的情况下做到这一点?因为已经定义好了(int x = keyboard.nextInt();keyboard.nextLine();)。
  • 创建另一个布尔值来检查输入是否正确。并让用户在嵌套的 while 循环中输入它。摆脱该嵌套循环的唯一方法是使用有效输入,否则它将通知用户输入无效并列出所有可能的有效输入。
【解决方案2】:

您可以通过以下代码使用for 循环

for(int x = 0; x < 3; x++) {
    //Perform logic
}

这将运行 3 次。您可以更改3 以使其运行次数增加或减少。

【讨论】:

  • 你不认为这会循环 4 次吗?
  • 如果您使用 x
  • 感谢您也了解这一点。
【解决方案3】:
        import java.util.Scanner;

    boolean isValidInput=false;
    int counter=0;

    Scanner sc = new Scanner(System.in);
    int userInput;

    while(counter<3 && isValidInput==false)
    {
        System.out.println("Enter a value: ");
           userInput = sc.nextInt();

        if(userInput>=0)
            isValidInput=true;

        else
            System.out.println("Please Enter valid input");

        counter++;

    }

【讨论】:

    猜你喜欢
    • 2016-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多