0

私は以下のプログラムを書きましたが、質問のbの部分で混乱しました。問題は、17 + 3 や 3.14159 * 4.7 などの単純な式を評価するプログラムを作成してください。式はユーザーが入力します。入力は常に、数値、演算子、別の数値で構成されます。使用できる演算子は、+、-、*、および / です。以下のパート (b) でデータ検証を行う必要があるため、ここでデータ検証を行う必要はありません。プログラムの出力には、結果とともに入力された式が表示される必要があります (例: 17 + 3 = 20)。

パート B: 上記のパート (a) のプログラムを変更して、入力された演算子を検証します。有効な演算子が入力されるまで、プログラムは入力を繰り返します。検証にはメソッドを使用する必要があります。

これが私が書いたものです

import java.util.Scanner;
public class JavaCalculator
{
     public static void main(String[] args)
   {
       Scanner console = new Scanner(System.in);
       double digit1;
       double digit2;
       double total;
       String operator1; 

       System.out.print("Enter 1st number: ");
       digit1 = console.nextDouble();

       System.out.print("Enter the operator: ");
       operator1=console.next();    

       System.out.print("Enter 2nd number: ");
       digit2 = console.nextDouble();

        if (operator1.equals("-"))
      {
        total = digit1-digit2;
        System.out.println(+digit1+ "-" +digit2+ "=" +total);
      }
      else if (operator1.equals("+"))
      {
        total = digit1+digit2;
        System.out.println(+digit1+ "+" +digit2+ "=" +total);
      }
      else if (operator1.equals("*"))
      {
        total = digit1*digit2;
        System.out.println(+digit1+ "*" +digit2+ "=" +total);
      }
      else if (operator1.equals("+"))
      {
        total = digit1/digit2;
        System.out.println(+digit1+ "/" +digit2+ "=" +total);
      }

     }

}

Java を使い始めたばかりですが、この質問で私や無知を我慢してください。オペレーターを検証するには、パート B のどの行から始めればよいですか?

4

2 に答える 2

0

そこで混乱しているのは何ですか?有効なオペレーター部分ですか? その場合、入力が有効な演算子の 1 つになるまで続くループを使用できます。そんな感じ:

Scanner console = new Scanner(System.in);
double digit1 = console.nextDouble();
String operator1;
boolean nonValidOperator = true;
while(nonValidOperator){
  operator1 = console.next();
  if(operator1.equals("-"){
    nonValidOperator = false; // so the program continues
  }else if(operator1.equals("+"){
    nonValidOperator = false;
  }
}
double digit2 = console.nextDouble();

if(operator1.equals("-"){
  System.out.println(digit1-digit2);
}else if(operator1.equals("+"){
  System.out.println(digit1+digit2);
}

ユーザーが有効な演算子のいずれかを入力するまで、ループが演算子部分にあるようにします

于 2013-08-26T06:18:42.880 に答える