0

これを正しく動作させることができません。想定どおりに機能し、計算を行いますが、1回ループして終了します。ユーザーが終了することを決定するまでループするか、1回だけ実行する必要があります。

import java.util.Scanner;

public class java {
  public static void main(String args[]) {
    System.out.println("Welcome to the simple Calculator program");
    System.out.println("Please type what type of math you would like to do: ");
    System.out.println("1=Addition");
    System.out.println("2=Subtraction");
    System.out.println("3=Multiplication");
    System.out.println("4=Division");
    System.out.println("5=Sqrt");
    Scanner input = new Scanner(System.in);
    int math = input.nextInt();
    if (math == 1) {
      Scanner a = new Scanner(System.in);
      int a1;
      int a2;
      int asum;
      System.out.print("Please enter the first number:  ");
      a1 = a.nextInt();

      System.out.print("Please enter the second number:  ");
      a2 = a.nextInt();

      asum = a2 + a1;
      System.out.print("The sum is: " + asum + "Thank You for using this program");
    }

    Scanner number = new Scanner(System.in);
    int number1;
    int number2;
    int sum;
    System.out.print("Enter first number:  ");
    number1 = number.nextInt();

    System.out.print("Enter Second number:  ");
    number2 = number.nextInt();

    sum = number1 + number2;

    System.out.printf("Sum is %d\n", sum);
  }
}
4

6 に答える 6

1

それは正常に機能しています。ユーザー入力に従ってループさせたい場合は、while のようなループ構造を使用する必要があります。if (math == 1)使用する代わりに

`while (math != exit)`

0 のような出口の新しいエントリを作成します。

于 2012-12-27T19:24:08.853 に答える
1

使用する

   do{
      // do something.
   } while(some condition);

そして、入力を取得するために同じスキャナーを繰り返します。メニューにオプションをもう 1 つ追加して繰り返し、それを while 条件で評価することもできます。

于 2012-12-27T19:25:15.830 に答える
1

whileループを使用してみてください。プログラムを終了するオプションをユーザーに提供します。

import java.util.Scanner;
public class java
{
    public static void main(String args[])
    {
        Scanner a = new Scanner(System.in);
        System.out.println("Welcome to the simple Calculator program");
        while(true)
        {
            System.out.println("Please type what type of math you would like to do: ");
            System.out.println("1=Addition");
            System.out.println("2=Subtraction");
            System.out.println("3=Multiplication");
            System.out.println("4=Division");
            System.out.println("5=Sqrt");
            System.out.println("6=Quit"); // added an option to quit the program
            int math = a.nextInt();
            if (math == 1)
            {
                int a1,a2,asum;
                System.out.print("Please enter the first number:  ");
                a1 = a.nextInt();
                System.out.print("Please enter the second number:  ");
                a2 = a.nextInt();
                asum = a2 + a1;
                System.out.println("The sum is: " + asum + "Thank You for using this program");
            }

            // Include actions for math = 2 to 5

            if(math == 6)
            {
                System.out.println("Thank You for using this program");
                System.exit(0);
            }
        }
    }
}

ユーザーが を入力してプログラムを終了するまで、各計算の後にオプションが何度も表示されます6
プログラムを 1 回だけ実行する場合は、外側のwhileループを除外する必要があります。他のすべては同じままです。
PS - 何度も開く必要はありませんScanner(少なくともこの問題では)。

于 2012-12-27T19:26:22.817 に答える
0

1)実行したい条件でdo-whileループを使用できます。

2)スイッチケースを使用し、スイッチケース内でさまざまな演算子を使用して数学演算を実行します。今のところ、あなたは足し算だけを実行しようとしています。つまり、すべての操作を実行できるスイッチケースです。

3)switchの場合、exit(0)メソッドを呼び出すオプションがあります。これにより、ユーザーが終了するまでプログラムを実行できます。

4)スイッチケースを使用することで、ユーザーが自分のオプションを選択できるようにすることができます。

于 2012-12-27T19:43:37.440 に答える
0

これは、コンソールからの入力を一度しか読み取っていないためです..のようなものでコンソールを維持するwhile(true) {}か、コンソールの終了条件を監視する 必要があり(" 0 = exit ")ます.

また、現在のように 2 つの数字を何度も読む必要はないと思います。

于 2012-12-27T19:25:38.563 に答える
0

あなたのプログラム全体は正しいです。

追加するだけ

System.exit(0);

すべての if(math==1) ,if(math==2)... ステートメントが終了する前に。

if(math==1) のように

{

...

System.exit(0);

}

エラーを修正できます...

エラーが修正されたら、私のように。そうでない場合は、エラーを教えてください

于 2014-05-20T10:55:00.493 に答える