1
   public static void main (String[] args) {

        int input = 0;


        // Creating our objects
        Scanner console = new Scanner(System.in);
        Math math = new Math();

        System.out.println("Welcome to Spin Game!");
        System.out.println("Please write '1' to spin, or -1 to exit.");

        //The input the user wrote..
        input = console.nextInt();

        if (input == 1) {

            int number = math.calculate(math.number());

            if (number < 30)
            {
                System.out.println("You just won the game!");
            }
            else
            {
                System.out.println("You lost..");                   
            }
        }
    }

什么:

基本上是旋转游戏,如果数字低于30,你赢了,否则你输了。我想要的是,问题继续。一旦你写'1',它会告诉你是输还是赢,然后让你再玩一次,而不用结束程序。

问题:

该程序在写入“1”后才存在。除非我重新启动程序,否则我不能再玩了。

为什么这样做?

我是 Java 新手。

4

4 回答 4

4

将其更改为:

   public static void main (String[] args) {

        int input = 0;


        // Creating our objects
        Scanner console = new Scanner(System.in);
        Math math = new Math();

        System.out.println("Welcome to Spin Game!");
        System.out.println("Please write '1' to spin, or -1 to exit.");

        //The input the user wrote..

        input = console.nextInt();

        while(input == 1) {                
            int number = math.calculate(math.number());

            if (number < 30)
            {
                System.out.println("You just won the game!");
            }
            else
            {
                System.out.println("You lost..");                   
            }
            input = console.nextInt();
        }
    }

这将循环该过程!

  1. 第一个输入设置为 0。

  2. 然后它会询问您要做什么(将输入设置为 1 或 -1)。

  3. 如果将其设置为 1,程序将进入循环并运行一次。在循环结束时,它会再次询问您要做什么(1 或-1)。

  4. 如果输入为 1,则循环将再次运行。然后它是这样的。如果你愿意,你可以在循环中添加一个System.out.println("Please write '1' to spin, or -1 to exit.");right after 。input = console.nextInt();这将使文本出现在每个循环中。

于 2013-06-24T15:25:00.327 回答
1

我在下面发布了工作代码。解决方案是,您希望程序重复执行,直到用户输入数字:-1。因此,虽然输入不等于 -1,但我们希望程序继续运行。现在显然,我们希望它至少运行一次,并且由于我们初始化了 的值input=0;,我们不必担心,因为它肯定会在第一次进入 while 循环。现在,如果用户输入 -1,它将命中你if(input==1)并评估为 false,因此while(input != -1)再次检查条件,这一次将返回 false(因为它确实相等)并且循环将中断并结束应用程序。

public static void main (String[] args) {

    int input = 0;


    // Creating our objects
    Scanner console = new Scanner(System.in);
    Math math = new Math();

    while(input != -1)
    {
        System.out.println("Welcome to Spin Game!");
        System.out.println("Please write '1' to spin, or -1 to exit.");

        //The input the user wrote..
        input = console.nextInt();

        if (input == 1) {

            int number = math.calculate(math.number());

            if (number < 30)
            {
                System.out.println("You just won the game!");
            }
            else
            {
                System.out.println("You lost..");                   
            }
        }
      }
    }
于 2013-06-24T15:25:44.330 回答
1

您需要添加一个while循环。

我还添加了逻辑来检查其他输入值。向其他输入值添加验证将有助于捕获可能发生的任何逻辑错误。如果不添加它,您的程序将循环任何输入值,而不仅仅是1.

 public static void main (String[] args) {

        int input = 0;


        // Creating our objects
        Scanner console = new Scanner(System.in);
        Math math = new Math();

        System.out.println("Welcome to Spin Game!");
        System.out.println("Please write '1' to spin, or -1 to exit.");

        while(true){ //Infinite loop, i.e. execute until condition is false.         
          //The input the user wrote..
          input = console.nextInt();

            if (input == 1) {

            int number = math.calculate(math.number());

            if (number < 30)
                {
                     System.out.println("You just won the game!");
                }
                else
                {
                    System.out.println("You lost..");                   
                }
            } else if (input == -1){
                break; //exit the loop, alternatively, add some exit text here 
            } else {
               System.out.println("Please Enter 1 to spin, or -1 to exit.");               
            }
        }
    }
于 2013-06-24T15:27:44.963 回答
0

这就是你想要的。

public static void main(String[] args)
{

    int input = 0;


    // Creating our objects
    Scanner console = new Scanner(System. in );
    Math math = new Math();

    System.out.println("Welcome to Spin Game!");
    System.out.println("Please write '1' to spin, or -1 to exit.");

    //The input the user wrote..
    input = console.nextInt();

    boolean running = true;

    while (running)
    {

        if (input == 1)
        {

            int number = math.calculate(math.number());

            if (number < 30)
            {
                System.out.println("You just won the game!");
            }
            else
            {
                System.out.println("You lost..");
            }
        }
        else if (input == -1)
        {
            running = false;
        }
    }
}

我所做的是添加一个新的布尔变量,并在一个 while 循环中运行旋转游戏代码。当输入为 -1 时,变量 running 设置为 false,游戏终止。

于 2013-06-24T15:28:53.083 回答