Java切换结果(需要打印值)

时间:2015-06-16 10:07:50

标签: java

我无法理解这一点,我已经在Java中创建了一个开关,供用户输入特定的细节。我在案例中创建了一个print语句来打印已输入的结果。我想要发生的是一个单独的print语句来显示输入值的组合细节(在说几个循环之后)。任何帮助将不胜感激。 提前致谢。 以下是我的代码

import java.util.Scanner; 
public class Stage3Check {

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    //Setup an exit statement
    boolean quit = false;
    while (!quit){
        System.out.println("Enter one of the following commands:");
        System.out.println("1 - Damage Repair");
        System.out.println("2 - Traffic Infringement");
        System.out.println("3 - Exit Menu");
        int choiceEntry = Integer.parseInt(input.nextLine());
        //Create switch
        if (choiceEntry <1){
            System.out.println("Please enter a valid menu command (1-3)");
        }
        else if (choiceEntry >3){
            System.out.println("Please enter a valid menu command (1-3)");
        }
        double damageCost = 0;
        switch (choiceEntry){
        case 1: System.out.print("Enter a description of the damage:"); 
        String damageDetail = input.nextLine();
        System.out.print("Enter the damage cost:"); 
        damageCost = Integer.parseInt(input.nextLine());
        System.out.print("The damage is: " + damageDetail + "\n");
        System.out.print("The damage cost is: " + "$" + damageCost + "\n");
        break;
        case 2: System.out.print("Enter a description of the traffic infringement:"); 
        String trafficDetail = input.nextLine();
        System.out.print("Enter the traffic infringement cost:");
        double trafficCost = Integer.parseInt(input.nextLine());
        break;
        case 3: quit = true; 
        System.out.println("Menu entry has been terminated.");
        break;


        }
        System.out.print("The damage cost is: " + "$" + damageCost + "\n");
        }

    }
}

4 个答案:

答案 0 :(得分:0)

您可以尝试将该选项添加到arraylist。

List<String> listOfEntries=new ArrayList<String>(); // Add strings like damage repair,etc //Or you could try List<Integer> listOfOptions=new ArrayList<Integer>();// Add option here, like 1,2 您可以添加用户选择的选项,在任何时间点,您都可以检索用户选择的选项并将值显示给用户。

希望这有帮助!

答案 1 :(得分:0)

1- print语句应该放在while循环之外:

System.out.print("The damage cost is: " + "$" + damageCost + "\n"); 

2-全局声明damageCost变量,即在while循环之外。

3-更改声明:

double trafficCost = Integer.parseInt(input.nextLine());

damageCost = damageCost + Integer.parseInt(input.nextLine());

答案 2 :(得分:0)

这样可行:

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
//Setup an exit statement
boolean quit = false;
double dCost=0;
double tCost=0;
StringBuilder dDetail= new StringBuilder("The Damage Details are :" );

StringBuilder tDetail= new StringBuilder("The Traffic details are:  " );
while (!quit){
    System.out.println("Enter one of the following commands:");
    System.out.println("1 - Damage Repair");
    System.out.println("2 - Traffic Infringement");
    System.out.println("3 - Exit Menu");
    int choiceEntry = Integer.parseInt(input.nextLine());
    //Create switch
    if (choiceEntry <1){
        System.out.println("Please enter a valid menu command (1-3)");
    }
    else if (choiceEntry >3){
        System.out.println("Please enter a valid menu command (1-3)");
    }
    double damageCost = 0;
    switch (choiceEntry){
        case 1: System.out.print("Enter a description of the damage:"); 
                String damageDetail = input.nextLine();
                System.out.print("Enter the damage cost:"); 
                damageCost = Integer.parseInt(input.nextLine());
                System.out.print("The damage is: " + damageDetail + "\n");
                System.out.print("The damage cost is: " + "$" + damageCost + "\n");

                dDetail.append(damageDetail+"\n");
                dCost=dCost+damageCost;
        break;
        case 2: System.out.print("Enter a description of the traffic infringement:"); 
                String trafficDetail = input.nextLine();
                System.out.print("Enter the traffic infringement cost:");
                double trafficCost = Integer.parseInt(input.nextLine());
                tDetail.append( trafficDetail+"\n");
                tCost=tCost+trafficCost;
        break;
        case 3: quit = true; 
                System.out.println("Menu entry has been terminated.");
                System.out.println("the Total traffic cost is "+tCost);
                System.out.println("the Total Damage cost is "+dCost);
                System.out.println(tDetail);
                System.out.println(dDetail);
        break;


    }

    }

}

答案 3 :(得分:0)

使用StringBuilder附加数据。 PFB更新了代码:

import java.util.Scanner;

public class Stage3Check {

    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        // Setup an exit statement
        boolean quit = false;
        StringBuilder sb = new StringBuilder();

        outer: while (!quit) {
            System.out.println("Enter one of the following commands:");
            System.out.println("1 - Damage Repair");
            System.out.println("2 - Traffic Infringement");
            System.out.println("3 - Exit Menu");

            int choiceEntry = Integer.parseInt(input.nextLine());
            // Create switch
            if (choiceEntry < 1 || choiceEntry > 3)
                continue outer;

            double damageCost = 0;

            switch (choiceEntry) {
            case 1:
                System.out.print("Enter a description of the damage:");
                String damageDetail = input.nextLine();
                System.out.print("Enter the damage cost:");
                damageCost = Integer.parseInt(input.nextLine());
                sb.append("The damage is: " + damageDetail + "\n");
                sb.append("The damage cost is: " + "$" + damageCost + "\n");
                break;
            case 2:
                System.out
                        .print("Enter a description of the traffic infringement:");
                String trafficDetail = input.nextLine();
                System.out.print("Enter the traffic infringement cost:");
                double trafficCost = Integer.parseInt(input.nextLine());
                sb.append("The traffic infringement is: " + trafficDetail
                        + "\n");
                sb.append("The traffic infringement cost is: " + "$"
                        + trafficCost + "\n");
                break;
            default:
                quit = true;
                System.out.println("Menu entry has been terminated.");
                break;
            }
        }
        System.out.println(sb.toString());
    }
}