这是一个简单的Calculator java程序。我正在尝试使用java构建4个操作(+、-、*&/(。
为了使程序模块化,我创建了多个方法,并在Main((方法中调用它们。问题是方法"calcContinue((;"不是从主方法调用。我没有收到错误或警告。在运行时,main((方法调用chooseOperation((,并允许用户输入num1和num2。然而,在那之后什么都没有了。我希望main((也能调用'calcContinue((方法。
请建议我如何更正代码以使从main调用"calcContinue(("。
import java.util.*;
public class Calculator {
static double num1, num2;
static int operator;
static double result;
static Scanner scanObj = new Scanner(System.in);
public static void main(String[] args) { //main method
System.out.print("enter first number:"); //user will enter number 1
num1 = scanObj.nextDouble();
System.out.print("enter Second number:"); //user will enter number 1
num2 = scanObj.nextDouble();
chooseOperation();
calcContinue();
}
public static void chooseOperation() { //user will choose calculator operation using 1-4
System.out.println("Please select"
+ "n 1. Addition "
+ "n 2. Subtraction"
+ "n 3. Multiplication"
+ "n 4. Division");
System.out.print("enter the calculator operationt" + scanObj.nextLine()); //user will enter calculator operation
operator = scanObj.nextInt();
if (operator == 1 ) {
addition();
}
else if (operator == 2) {
subtraction();
}
else if (operator == 3) {
multiplication();
}
else {
division();
}
}
public static char calcContinue() { //method for user to select if they want to continue
System.out.print("do you want to perform more operation t Y/N ?" + scanObj.next().charAt(0));
char a = scanObj.next().charAt(0);
if (a == 'Y' || a == 'y') {
Calculator.chooseOperation();
} else {
System.out.println("Calculator operation is terminated");
}
return a;
}
public static void addition() { //method for addition
result = num1 + num2;
System.out.println("Addition oft" +num1+ "and" +num2+ "ist:" + result);
}
//method for subtraction
public static void subtraction() {
result = num1 - num2;
System.out.println("subtraction oft" +num1+ "and" +num2+ "is:t" + result);
}
//method for multiplication
public static void multiplication() {
result = num1 * num2;
System.out.println("multiplication oft" +num1+ "and" +num2+ "is:t" + result);
}
//method for division
public static void division() {
result = num1/num2;
System.out.println("Division oft" +num1+ "and" +num2+ "is:t" + "" + result);
}
}
首先,您的代码运行良好。问题是,就在calcContinue()
开始时,您告诉javaIO等待2次才能输入。只需更换
System.out.print("do you want to perform more operation t Y/N ?" + scanObj.next().charAt(0));
带有
System.out.print("do you want to perform more operation t Y/N ?");
在下一行中,您将读取用户的输入。因此,不需要在print语句中调用scanObj.next().charAt(0)
。