循环或打印收据

问题描述

好的,所以我有这个程序,可以在此打印牙医办公室的收据。现在,您输入一个数字,费用就会相应地打印出来。但是,我希望能够在程序中输入多个数字,当我键入“ -1”时,我希望程序停止并打印总费用。看看:

import java.util.Scanner;
public class DentistReception{
public static void main(String[] args) {
double cost = 0;
int treatment = 0;


final double checkUp = 60.00;
final double cleaning = 30.00;
final double cavity = 150.00;

Scanner input = new Scanner(system.in); 
System.out.println("What service(s) will be done?: ");
System.out.println("Checkup: 1");
System.out.println("Cleaning: 2");
System.out.println("Cavity: 3");
System.out.println("Exit: -1");
treatment = input.nextInt();

{

  if (treatment == 1) {
  cost = cost + checkUp;
}
else {
  if (treatment == 2) {
  cost = cost + cleaning;
}
else {
  if (treatment == 3) {
  cost = cost + cavity;
  }
  else {
    while (treatment < 0) break;
  
  }
}
}
}


System.out.println("Total cost it:"+cost);



  }
}

我希望它循环播放直到我输入“ -1”,但是中断似乎并不是它想要的那样。每当我放一会儿或在其他地方休息时,我都会收到“不循环休息”之类的消息。

解决方法

使用while并使用布尔变量捕获选项

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        double cost = 0;
        int treatment = 0;

        final double checkUp = 60.00;
        final double cleaning = 30.00;
        final double cavity = 150.00;

        boolean repeat = true;
        while (repeat) {
            Scanner input = new Scanner(System.in);
            System.out.println("What service(s) will be done?: ");
            System.out.println("Checkup: 1");
            System.out.println("Cleaning: 2");
            System.out.println("Cavity: 3");
            System.out.println("Exit: -1");
            treatment = input.nextInt();
            input.nextLine();
            switch (treatment) {
                case 1:
                    cost = cost + checkUp;
                    break;
                case 2:
                    cost = cost + cleaning;
                    break;
                case 3:
                    cost = cost + cavity;
                    break;
                default:
                    System.out.println("do you want to break out the loop?");
                    String ans = input.nextLine();
                    if (ans.equals("y")){
                        System.out.println("exiting...");
                        repeat = false;
                    }


                    break;
            }
            // if (treatment == 1) {
            // cost = cost + checkUp;
            // } else {
            // if (treatment == 2) {
            // cost = cost + cleaning;
            // } else {
            // if (treatment == 3) {
            // cost = cost + cavity;
            // } else {
            // while (treatment < 0)
            // break;

            // }
            // }
            // }
        }

        System.out.println("Total cost it:" + cost);

    }
}