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以下なら勝ち、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. 次に、何をしたいか尋ねます (input を 1 または -1 に設定します)。

  3. 1 に設定すると、プログラムはループに入り、1 回実行します。ループの最後で、何をしたいか (1 または -1) を再度尋ねられます。

  4. 入力が 1 の場合、ループは再び実行されます。するとこうなります。必要に応じて、ループのSystem.out.println("Please write '1' to spin, or -1 to exit.");直後に追加できます。input = console.nextInt();これにより、テキストがループごとに表示されます。

于 2013-06-24T15:25:00.327 に答える
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 に答える
1

以下に作業コードを投稿しました。解決策は、ユーザーが数字 -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 に答える
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 に答える