簡體   English   中英

Java計算器程序的Main方法中無法調用多個方法

[英]Unable to call Multiple methods in Main method of Java Calculator program

這是一個簡單的計算器 java 程序。 我正在嘗試使用 java 構建 4 個操作(+、-、* 和 /)。

為了使程序模塊化,我創建了多個方法並在 Main() 方法中調用它們。 問題是方法 'calcContinue();' 不是從 main 方法調用。 我沒有收到錯誤或警告。 運行時,main() 方法調用 chooseOperation() 並允許用戶輸入 num1 和 num2。 然而,在那之后就什么都沒有了。 我期待 main() 也能調用 'calcContinue() 方法。

請建議我如何更正我的代碼以從主調用“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 operation\t" + 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 of\t" +num1+ "and" +num2+ "is\t:" + result);
    }

    //method for subtraction
    public static void subtraction() {
        result = num1 - num2;
        System.out.println("subtraction of\t" +num1+ "and" +num2+ "is:\t" + result);
    }

    //method for multiplication
    public static void multiplication() {
        result = num1 * num2;
        System.out.println("multiplication of\t" +num1+ "and" +num2+ "is:\t" + result);
    }

    //method for division
    public static void division() {
        result = num1/num2;
        System.out.println("Division of\t" +num1+ "and" +num2+ "is:\t" + "" + result);
    }
}

首先,你的代碼工作得很好。 問題是在calcContinue()的開頭,您告訴 java IO 等待 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM