2016-10-23 91 views
1

我是新來的java和這個論壇。我爲一個簡單的計算器編寫了一個代碼。它正在工作。但是,如果我(比方說)放置「=」而不是「(+, - ,*,/)」,我該如何重複主要方法?我應該使用循環,還是其他?提前致謝!重複主要方法

import java.util.Scanner; 

public class SimCal { 

    public static int add(int a, int b) { 
     return a + b; 
    } 

    public static int sub(int a, int b) { 
     return a - b; 
    } 

    public static int mul(int a, int b) { 
     return a * b; 
    } 

    public static int div(int a, int b) { 
     return a/b; 
    } 

    public static void main(String[] args) { 

     Scanner scan1 = new Scanner(System.in); 
     System.out.println("What do you want to do (+, -, *, /)? "); 
     String input1 = scan1.nextLine(); 

     if (!input1.equals("+") && !input1.equals("-") && !input1.equals("*") && !input1.equals("/")) { // if wrong input given 
      System.out.println("You must Enter a valid operator"); 
     } else { 
      Scanner scan2 = new Scanner(System.in); 
      System.out.println("Enter first number: "); 
      int input2 = scan2.nextInt(); 

      Scanner scan3 = new Scanner(System.in); 
      System.out.println("Enter second number: "); 
      int input3 = scan3.nextInt(); 

      if (input1.equals("+")) { 
       System.out.println(add(input2, input3)); 
      } else if (input1.equals("/")) { 
       System.out.println(div(input2, input3)); 
      } else if (input1.equals("-")) { 
       System.out.println(sub(input2, input3)); 
      } else { 
       System.out.println(mul(input2, input3)); 
      } 
      scan1.close(); 
      scan2.close(); 
      scan3.close(); 
     } 
    } 
} 
+0

在循環內部使用開關盒。 –

+1

請勿創建多個掃描儀。重複使用'scan1'代替'scan2'和'scan3'。 –

回答

0

我有點不確定你在問什麼,但我知道你希望能夠重複計算器而不必再次運行它。這可以通過使用布爾值和時間塊來實現。

下面是一個例子:

import java.util.Scanner; 

public class SimCal { 

    public static int add (int a, int b){ 
     return a+b; 
    } 
    public static int sub (int a, int b){ 
     return a-b; 
    } 
    public static int mul (int a, int b){ 
     return a*b; 
    } 
    public static int div (int a, int b){ 
     return a/b; 
    } 
    public static boolean done = false; 


    public static void main(String[] args){ 


     Scanner scan1 = new Scanner(System.in); 
     Scanner scan2 = new Scanner(System.in); 
     Scanner scan3 = new Scanner(System.in); 
     while (!done) { 
      System.out.println("What do you want to do (+, -, *, /, quit)? "); 
      String input1 = scan1.nextLine(); 

      if (!input1.equals("+") && !input1.equals("-") && !input1.equals("*") && !input1.equals("/") && !input1.equals("quit")) 
      { //if wrong input given 
       System.out.println("You must Enter a valid operator"); 
      } 
      else if (input1.equals("quit")) 
      { 
       done = true; 
       scan1.close(); 
       scan2.close(); 
       scan3.close(); 
      } 
      else 
      { 
       System.out.println("Enter first number: "); 
       int input2 = scan2.nextInt(); 


       System.out.println("Enter second number: "); 
       int input3 = scan3.nextInt(); 

       if (input1.equals("+")) 
       { 
        System.out.println(add(input2, input3)); 
       } 
       else if (input1.equals("/")) 
       { 
        System.out.println(div(input2, input3)); 
       } 
       else if (input1.equals("-")) 
       { 
        System.out.println(sub(input2, input3)); 
       } 
       else 
       { 
        System.out.println(mul(input2, input3)); 

       } 

      } 
     } 
    } 
} 

我希望這是有幫助的。就像Andy Turner所說,你應該儘量不使用多個掃描儀。

編輯:我忘了關閉2掃描儀。此外,切換案例可能是一個更好的方法,就像Saurav Sahu所說的那樣。

+0

謝謝,這就是我的意思。 –