2017-06-18 101 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

中断并继续可选地接受一个参数。 –

+2

你可以在代码的主要部分放一个'while'或'do ... while'循环。 – Poohl

+1

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

回答

0

A while循环是你需要的。循环的输入条件将是default的情况。在循环中,你必须把这段代码你使用之前:

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

因此,将继续要求输入,直到你没有得到一个default情况。

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,如果“text”字符串为null,则会遇到NullPointerException。
  • 如果你会使用这么多的case语句,你必须考虑设计patten,链接是Replacing if else statement with pattern