我正在创建一个包装在一段时间内的开关,用于作业分配。除了尝试添加到totalPrice
双重变量之外,一切都正常totalPrice += priceA;
和totalPrice = totalPrice + priceA;
这是我的转储,我知道这很简单,但是我的谷歌搜索和文档显示为零。
import java.util.Scanner;
public class Coffee {
public static double priceA = 1.99;
public static double priceE = 2.99;
public static double priceL = 3.99;
public static double totalPrice = 0;
public static int custChoice;
public static int counter =1;
public static void main(String[] args) {
menu();
while (counter <3 && custChoice !=0) {
menu();
switch (custChoice) {
case '1':
totalPrice = totalPrice +priceA;
return;
case '2':
totalPrice = totalPrice +priceE;
return;
case '3':
totalPrice = totalPrice +priceL;
return;
case '0':
break;
default:
System.out.println("Your total is $" + totalPrice);
}
counter++;
}
}
public static void menu() {
Scanner input = new Scanner(System.in);
System.out.println("Counter: " + counter);
System.out.println("Total Price: $" + totalPrice);
System.out.println("-----------------------------");
System.out.println(" (1) American 1.99 ");
System.out.println(" (2) Espresso 2.99 ");
System.out.println(" (3) Latte 3.99 ");
System.out.println("-----------------------------");
System.out.println("");
System.out.println(" Please make a selection \n\t or enter 0 to total and quit.");
custChoice = input.nextInt();
}
}
帮助我的StackOverflow!你是我唯一的希望。
最佳答案
您可以将default-case用于某些基本的输入错误处理,因为当未检测到其他任何情况(0,1,2,3)时,都会执行默认情况。
因此,就像其他人提到的那样,将总价格的总和移到案例0,并以返回语句结束该案例,这将结束程序的执行。
进一步,在默认情况下为用户插入一些警告文本,并告知输入错误。
为了防止出现逻辑问题,您应该将Counter减1,因为在while循环的迭代中用户没有购买任何东西,并且在Loop结束时它将增加1。
编辑:
我认为Daniel Kis的答案已经非常不错,但是对于默认情况却没有任何内容。
我接受了他的解决方案并进行了扩展:
public class Coffee {
public static double priceA = 1.99d;
public static double priceE = 2.99d;
public static double priceL = 3.99d;
public static double totalPrice = 0d;
public static int custChoice;
public static int counter =1;
public static void main(String[] args) {
menu();
while (counter <3) {
switch (custChoice) {
case 1:
totalPrice = totalPrice +priceA;
break;
case 2:
totalPrice = totalPrice +priceE;
break;
case 3:
totalPrice = totalPrice +priceL;
break;
case 0:
System.out.println("Your total is $" + totalPrice);
return;
default:
System.out.println("This Option is not available, please try again!");
counter--;
break;
}
counter++;
menu();
}
}
public static void menu() {
Scanner input = new Scanner(System.in);
System.out.println("Counter: " + counter);
System.out.println("Total Price: $" + totalPrice);
System.out.println("-----------------------------");
System.out.println(" (1) American 1.99 ");
System.out.println(" (2) Espresso 2.99 ");
System.out.println(" (3) Latte 3.99 ");
System.out.println("-----------------------------");
System.out.println("");
System.out.println(" Please make a selection \n\t or enter 0 to total and quit.");
custChoice = input.nextInt();
}
}