2017-06-18 27 views
1

私はJavaを使い慣れていなくて、基本を使いこなしています。私は電卓のようなものを作りました。 (簡単に電卓は、おそらくそこにあるだけで、私の頭に浮かんだものと働いていた)。ここJavaプログラムを再起動するには

を私のコードです:

import java.util.Scanner; 

public class App { 
    public static void main(String[] args) { 

     Scanner input = new Scanner(System.in); 


     double second; 

     System.out.println("Please tell me a number"); 

     double first = input.nextDouble(); 
     input.nextLine(); // Consume newline left-over 

     System.out.println("You chose the number " + first); 

     System.out 
       .println("Now please choose what you want to do with the number. (divide, add, multiply or subtract)"); 
     String text = input.nextLine(); 

     switch (text) { 
     case "divide": 
      System.out.println("What do you want to divide your number " + first + " with?"); 
      second = input.nextDouble(); 
      double resultDivide = first/second; 
      System.out.println(first + "/" + second + " = " + resultDivide); 
      break; 
     case "add": 
      System.out.println("What do you want to add to your number " + first + "?"); 
      second = input.nextDouble(); 
      double resultAdd = first + second; 
      System.out.println(first + " + " + second + " = " + resultAdd); 
      break; 
     case "multiply": 
      System.out.println("What do you want to multiply your number " + first + " with?"); 
      second = input.nextDouble(); 
      double resultMultiply = first * second; 
      System.out.println(first + " * " + second + " = " + resultMultiply); 
      break; 
     case "subtract": 
      System.out.println("What do you want to subtract your number " + first + " with?"); 
      second = input.nextDouble(); 
      double resultSubtract = first - second; 
      System.out.println(first + " - " + second + " = " + resultSubtract); 
      break; 
     default: 
      System.out.println("Sorry, I did not quite understand that. Please try again."); 

     } 

    } 

だから私の質問は次のとおりです、それはスイッチのcase文でデフォルトに達したとき、私が作ることができますプログラムが始動から再開しますか?

ありがとうございます。

+0

breakとcontinueはオプションで引数をとります。 –

+2

コードの主要部分の周りに 'while'または' do ... while'ループを置くことができます。 – Poohl

+1

https://docs.oracle.com/javase/tutorial/java/nutsandbolts/while.html –

答えて

0

whileループが必要です。ループの入力条件はdefaultの場合です。それはあなたがdefaultケースを取得しないまで、入力をお願いしていきますので

System.out.println("Now please choose what you want to do with the number. (divide, add, multiply or subtract)"); 
     String text = input.nextLine(); 

:ループ内であなたが前に使用されるコードのこの部分を配置する必要があります。

1

ユーザーが有効な操作を指定するまでループしたいと思っているようです。その場合、あなたは変数を見て、whileループを使用することができます。

import java.util.Scanner; 

public class App { 
    public static void main(String[] args) { 

     Scanner input = new Scanner(System.in); 

     double second; 
     System.out.println("Please tell me a number"); 
     double first = input.nextDouble(); 
     input.nextLine(); // Consume newline left-over 

     System.out.println("You chose the number " + first); 

     System.out 
       .println("Now please choose what you want to do with the number. (divide, add, multiply or subtract)"); 
     String text = input.nextLine(); 

     boolean correctOperation = true; 

     do { 
      correctOperation = true; 

      switch (text) { 
       case "divide": 
        System.out.println("What do you want to divide your number " + first + " with?"); 
        second = input.nextDouble(); 
        double resultDivide = first/second; 
        System.out.println(first + "/" + second + " = " + resultDivide); 
        break; 
       case "add": 
        System.out.println("What do you want to add to your number " + first + "?"); 
        second = input.nextDouble(); 
        double resultAdd = first + second; 
        System.out.println(first + " + " + second + " = " + resultAdd); 
        break; 
       case "multiply": 
        System.out.println("What do you want to multiply your number " + first + " with?"); 
        second = input.nextDouble(); 
        double resultMultiply = first * second; 
        System.out.println(first + " * " + second + " = " + resultMultiply); 
        break; 
       case "subtract": 
        System.out.println("What do you want to subtract your number " + first + " with?"); 
        second = input.nextDouble(); 
        double resultSubtract = first - second; 
        System.out.println(first + " - " + second + " = " + resultSubtract); 
        break; 
       default: 
        System.out.println("Sorry, I did not quite understand that. Please try again."); 
        correctOperation = false; 
        text = input.nextLine(); 
      } 
     } while(!correctOperation) 
    } 
} 
0

私は例えば、あなたはwhileループが必要であることを考える:

String text = input.readLine(); 
while(text != null) { 
    switch(...) 
} 

そして、もっと、私はあなたにいくつかの提案を与えたいです:

  • "text"文字列がnullの場合は、NullPointerExceptionが発生します。
  • 多くのケースステートメントを使用する場合は、デザインパターンを考慮する必要があります。リンクはReplacing if else statement with patternです。
関連する問題