java - 使用 if 语句在单个方法中将常量相加
问题描述
我正在尝试创建一种方法,如果玩家满足某些条件,它会增加分数
所有玩家的基本费率为 60
如果大于 74 英寸高和 190 磅重是 5
如果进球数为 4
如果喝啤酒真的是 - 10
我不知道如何在一个方法中将常量添加在一起,但我可以通过创建多个方法来做到这一点
private String firstName;
private String lastName;
private int height;
private double weight;
private boolean scoresGoal;
private boolean drinksBeer;
public static final int BASE_RATE = 60;
public static final int TALL_INCHES = 74;
public static final double HEAVY_POUNDS = 190.0;
public static final int TALL_HEAVY_BONUS = 5;
public static final int SCORES_BONUS = 4;
public static final int DRINKS_DEDUCTION = 10;
public int calculateGamePay() {
return BASE_RATE + getTALL_HEAVY_BONUS() + getSCORES_BONUS() - getDRINKS_DEDUCTION();
}
public int getTALL_HEAVY_BONUS(){
if(height >= 74 && weight >= 190) {
return TALL_HEAVY_BONUS;
} else{
return 0;
}
}
public int getSCORES_BONUS(){
if(scoresGoal == true) {
return SCORES_BONUS;
} else {
return 0;
}
}
public int getDRINKS_DEDUCTION(){
if(drinksBeer == true) {
return DRINKS_DEDUCTION;
} else {
return 0;
}
}
解决方案
您可以在您的方法中使用三个if
语句calculateGamePay
从BASE_RATE
.
public int calculateGamePay() {
int pay = BASE_RATE;
if(height >= 74 && weight >= 190) pay += TALL_HEAVY_BONUS;
if(scoresGoal) pay += SCORES_BONUS;
if(drinksBeer) pay -= DRINKS_DEDUCTION;
return pay;
}
或者,您可以使用三元运算符将所有三种方法的逻辑组合成一行。
public int calculateGamePay() {
return BASE_RATE + (height >= 74 && weight >= 190 ? TALL_HEAVY_BONUS : 0)
+ (scoresGoal ? SCORES_BONUS : 0) - (drinksBeer ? DRINKS_DEDUCTION: 0);
}
推荐阅读
- flutter - 如何将小部件动态添加到 Flutter 中的列?
- reactjs - 组件未在 stateChange 上更新
- visual-studio-code - ctrl-P 面板的“时间”和“命令”是什么?
- python - 如何通过python将csv值导入postgres
- java - Flyway Maven 插件不再工作:在当前项目和插件组中找不到前缀“flyway”的插件
- json - 在哈希表范围内查找键的最佳算法
- python - 在numpy中计算移动窗口的值
- python - Python 3 的 Json2csv 转换器
- android - 更改 SH1 密钥后签名的 apk 不显示谷歌地图
- javascript - 防止 chrome 自动提示启用自动完成的原因