2016-10-23 4 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

複数のスキャナを作成しないでください。 'scan2'と' scan3'の代わりに 'scan1'を再利用してください。 –

答えて

0

私はあなたが求めているもののビットわからないが、私はあなたが再びそれを実行することなく、計算を繰り返すことができるようにしたいということを理解しました。これはブール値とwhileブロックを使用することで実現できます。ここで

は一例です:

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

ありがとう、それは私が意味するものです。 –