JAVA,要求:会员:买五本书以上打七五折;买五本书一下打八五折;非会员:买五本书以上打八五折;买五本一下九五折 非会员:>= 200,打九五折;低于200元,不打折。
时间: 2024-09-09 14:14:41 浏览: 77
在Java中,为了实现这样的折扣策略,你可以创建两个条件判断,分别针对会员和非会员的情况。假设有一个Book类代表书籍,包含价格信息,以及MemberStatus枚举类表示用户是否为会员。下面是一个简单的示例:
```java
public class Book {
private double price;
// 构造函数、getter和setter省略...
public double calculateDiscount(MemberStatus memberStatus) {
if (memberStatus == MemberStatus.MEMBER && getQuantity() >= 5) {
return price * 0.75; // 会员购买5本及以上打七五折
} else if (getQuantity() < 5 && memberStatus == MemberStatus.MEMBER) {
return price * 0.85; // 会员购买4本及以下打八五折
} else if (!memberStatus.isMember()) { // 非会员情况
if (price >= 200) {
return price * 0.95; // 非会员购买200元及以上打九五折
} else {
return price; // 非会员购买不足200元不打折
}
} else { // 未考虑的情况
throw new IllegalArgumentException("Invalid member status");
}
}
}
enum MemberStatus {
MEMBER,
NON_MEMBER;
public boolean isMember() {
return this == MEMBER;
}
}
```
在这个例子中,`calculateDiscount`方法根据用户状态和购买书籍的数量计算折扣后的总价。每个if-else块对应一种条件,最后的异常处理是为了防止不合理的成员状态输入。
阅读全文