我们被要求使用switch语句创建一个程序..
这是我的代码:
double price = 0, totalPrice;
System.out.print("Enter the number of your choice: ");
int optionNumber = Integer.parseInt(kb.readLine());
switch(optionNumber)
{
case 1:
price = 190.00;
break;
case 2:
price = 410.00;
break;
default:
System.out.println("ERROR: Invalid number!");
break;
}
System.out.print("Enter quantity: ");
int quantity = Integer.parseInt(kb.readLine());
totalPrice = price * quantity;
基本上,用户将输入一定数量,并且在switch语句中将有不同的价格...... 但如果用户输入了错误的数字,它将显示错误信息,我不希望用户输入将在switch语句后执行的数量。 我们不允许使用任何方法或功能,我不想像这样重复编码:
System.out.print("Enter the number of your choice: ");
int optionNumber = Integer.parseInt(kb.readLine());
switch(optionNumber)
{
case 1:
price = 190.00;
System.out.print("Enter quantity: ");
int quantity = Integer.parseInt(kb.readLine());
totalPrice = price * quantity;
System.out.print("Total price: " + totalPrice);
break;
case 2:
price = 410.00;
System.out.print("Enter quantity: ");
int quantity = Integer.parseInt(kb.readLine());
totalPrice = price * quantity;
System.out.print("Total price: " + totalPrice);
break;
default:
System.out.println("ERROR: Invalid number!");
break;
}
有没有其他方法不反复使用if else,方法,函数或编码? 任何帮助都将得到赞赏。
答案 0 :(得分:1)
用作:
while(!valid option)
//do this stuff
如果输入的数字有效,请使用标记并将其设置为true,这样它将转到您的下一条指令;否则再次询问输入。
答案 1 :(得分:1)
如果选择了无效选项,您可以使用布尔标志并将其设为false 然后只询问用户flag是否为真。
System.out.print("Enter the number of your choice: ");
int optionNumber = Integer.parseInt(kb.readLine());
boolean flag = true;
switch (optionNumber) {
case 1:
price = 190.00;
break;
case 2:
price = 410.00;
break;
default:
flag = false;
System.out.println("ERROR: Invalid number!");
break;
}
if (flag) {
System.out.print("Enter quantity: ");
int quantity = Integer.parseInt(kb.readLine());
totalPrice = price * quantity;
System.out.print("Total price: " + totalPrice);
}
答案 2 :(得分:0)
您可以从default
语句中删除switch
,并检查switch
语句后价格是否等于0
double price = 0, totalPrice;
System.out.print("Enter the number of your choice: ");
int optionNumber = Integer.parseInt(kb.readLine());
switch(optionNumber)
{
case 1:
price = 190.00;
break;
case 2:
price = 410.00;
break;
}
if (price == 0)
{
System.out.println("ERROR: Invalid number!");
}
else
{
System.out.print("Enter quantity: ");
int quantity = Integer.parseInt(kb.readLine());
totalPrice = price * quantity;
System.out.print("Total price: " + totalPrice);
}
这可以防止你添加不必要的变量(比如布尔标志),当你已经有一个(price
)的默认值为0
时可以检查。
答案 3 :(得分:0)
抛出异常
default:
throw new InvalidArgumentException("Invalid number!");