2016-04-17 9 views
-1

私は最初のJavaプログラムとして電卓を作ろうとしています。この電卓はプロセスをループして終了します。私の問題は終了します。それでもnum1とnum2を求めて、すぐに終了したい。ループ:whileとswitchの基本的な電卓java

import java.io.Console; 
public class Calc { 
    public static void main (String[] args) { 
     Console console = System.console(); 
     loop: while(true) { 
     String operator = console.readLine("Enter Operation or Quit: "); 
     String num1 = console.readLine("Enter num1: "); 
     String num2 = console.readLine("Enter num2: "); 
     int x = Integer.parseInt(num1); 
     int y = Integer.parseInt(num2); 
     int sum = add(x,y); 
     int sub = minus(x,y); 
     int mul = product(x,y); 
     int div = divide(x,y); 

     switch(operator) { 
      case "addition": 
      System.out.println(sum); 
      break; 
      case "subtraction": 
      System.out.println(sub); 
      break; 
      case "multiplication": 
      System.out.println(mul); 
      break; 
      case "division": 
      System.out.println(div); 
      break; 
      case "quit": 
      System.exit(0); 
      break loop; 
      default: 
      System.out.println("Out of topic"); 
      } 
     } 

     } 
    public static int add(int x, int y) { 
     return x+y; 
    } 
    public static int minus(int x, int y) { 
     return x-y; 
    } 
    public static int product(int x, int y) { 
     return x*y; 
    } 
    public static int divide (int x, int y) { 
     return x/y; 
    } 

} 
+0

私はあなたが*試みた*が問題を解決するために何をしているのか、あるいはあなたが問題を引き起こしていると思われるものを見たいと思っています。さもなければ、あなたが働いていないものの最初の瞬間をあきらめて、ここでまっすぐ助けを求めて行ったように見えます。これはプログラミングの問題ではなく、論理的な流れの問題です。何が起こる必要があるかについて考える必要があります。 – Roman

答えて

2

でも私はまだそれがその場合はすぐに

を終了したいNUM1とNUM2を求め、それをやめる選択したオプションは、次の二つの値を求める前に終了しているかどうかをチェック。

String operator = console.readLine("Enter Operation or Quit: "); 
if ("quit".equals(operator)) 
    return; 
String num1 = console.readLine("Enter num1: "); 

ところで、式があいまいでない限り、より長く、よりそれがラップ表現よりも複雑である方法を有しない多くの点が存在しません。 +の意味はあいまいではないと考えることができます。

+0

あなたはPeter^_^now im very enlighten –

+0

私は選択肢や他の方法で私が間違って入力した値を入力すると、最初にnum1 num2を表示せずに自分のデフォルト(Out of Topic)を直接表示できますか? tnx –