无法在Java Calculator程序的Main方法中调用多个方法



这是一个简单的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)

最新更新