public class HomeworkDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double result = 0;
while (scanner.hasNextDouble()) {
double i = scanner.nextDouble();
String str = scanner.next();
double j = scanner.nextDouble();
switch (str) {
case "+":
result = add(i, j);
System.out.println(result);
break;
case "-":
result = minus(i, j);
System.out.println(result);
break;
case "*":
result = multiply(i, j);
System.out.println(result);
break;
case "/":if(j==0){
System.out.println("除数不能为零");
break;
}else
result = divide(i, j);
System.out.println(result);
break;
}if (str.equals("quit")){
System.out.println("退出计算器");
break;
}
}scanner.close();
}
//加
public static double add ( double a , double b){
return a + b;
}//减
public static double minus ( double a , double b){
return a - b;
}//乘
public static double multiply ( double a , double b){
return a * b;
}//除
public static double divide ( double a , double b){
return a / b;
}
}
発生した問題:1。whileのブール式としてscanner.hasNextを使用すると、計算する新しいデータセットが入力されたときに最初の数値に値を割り当てることができず、スキャナーの判断に直接ジャンプします。 .hasNext。したがって、whileのブール式をscanner.hasNextDouble
2に変更します。除数がゼロの場合、「除数をゼロにすることはできません」を出力するだけでなく、最初に結果に割り当てられた値0を出力し、ブレークを追加します。次に、問題。
3.ステップバイステップのソリューションのアイデアを使用して、加算演算を実行できる電卓と4つの算術演算を実行できる電卓を作成できます。