我试图创建代码,获取客户购买的商品数量,然后打印出折扣金额。
1-3 items purchased will get no discount
4-6 items purchased will get 5% discount
7-10 items purchased will get 10% discount
11 or more items purchased will get a 15% discount
任何帮助都将不胜感激,谢谢。这是我创建的代码。
package discount;
import java.util.Scanner;
public class Discount {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Input the number of items: ");
int quantity = input.nextInt();
int[] discount = {0, 5, 10, 15};
if (quantity >= 1 && quantity < 4) {
System.out.print("no discount");
} else if (quantity >= 4 && quantity < 7) {
System.out.print(discount[1] + "% discount");
} else if (quantity >= 7 && quantity < 11) {
System.out.print(discount[2] + "% discount");
} else if (quantity >= 11) {
System.out.print(discount[3] + "% discount");
}
}
}
发布于 2022-01-19 02:32:39
我建议您通过提取负责计算折扣和将消息打印成单独方法的代码来应用分解。它将使您的代码更简洁,即使没有开关表达式。
1.计算折扣:
public static int getDiscount(int items) {
return switch(items) {
case 0, 1, 2, 3 -> 0;
case 4, 5, 6 -> 5;
case 7, 8, 9, 10 -> 10;
default -> 15;
};
}
2.打印消息:
public static void printMessage(int discount) {
switch(discount) {
case 0 -> System.out.print("no discount");
default -> System.out.println(discount + "% discount");
}
}
3.主要:
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Input the number of items: ");
printMessage(getDiscount(input.nextInt()));
}
发布于 2022-01-19 04:26:47
如果没有Kotlin when
,switch
可能会做你想做的任何事情,也可能不会做任何事情。但是,如果您确实想用if-else
编写,它可以清理:
if(quantity > 0){
int discount = -1
if(quantity < 4) discount = 0;
else if (quantity < 7) discount = 5;
else if (quantity < 11) discount = 10;
else discount = 15;
printDiscountMessage(discount)
}
发布于 2022-01-19 06:24:23
使用这个
int discountCalculation = (quantity >= 1 && quantity < 4) ?discount[0]: (quantity >= 4 && quantity < 7)?discount[1]: (quantity >= 7 && quantity < 11) ?discount[2]:discount[3];
https://stackoverflow.com/questions/70764594
复制相似问题