gpt4 book ai didi

java - 压缩控制 block Java

转载 作者:太空宇宙 更新时间:2023-11-04 11:32:58 26 4
gpt4 key购买 nike

我想知道是否可以从此压缩我的 if 控制 block :

    //HUNGER
if(hungerLvl > 0){
hunger = "Peckish";
}
if(hungerLvl > 50){
hunger = "Very Hungry";
}
if(hungerLvl > 80) {
hunger = "Starving";
}

对于这样的事情:

if(hungerLvl > 0; hungerLvl > 50; hungerLvl > 80) {

}

最佳答案

我非常喜欢使用数据结构+循环而不是重复的代码。也就是说,这会增加复杂性,有时这是不值得的。

您发布的内容看起来很容易阅读,因此可能不值得大惊小怪。但是,如果您最终可能会遇到数十或数百个条件,那么数据结构+循环将为您提供更好的服务。

这是一个完整的工作示例,使用相同的值。关键方法 howHungry 既不比 3 范围示例更紧凑,也不更具可读性。但是,如果您使用 10 或 20 个条件,那么恕我直言,这将更易于维护且更具可读性。

import java.util.SortedMap;
import java.util.TreeMap;
import java.util.Map;

public class HowHungry {

public String howHungry(Integer hunger) {
SortedMap<Integer, String> HungerLevels = new TreeMap<>();
HungerLevels.put(0, "Peckish");
HungerLevels.put(50, "Very Hungry");
HungerLevels.put(80, "Starving");

String howHungry = null;
for (Map.Entry<Integer,String> me : HungerLevels.entrySet() ) {
if (hunger > me.getKey()) {
howHungry = me.getValue();
} else {
break;
}
}
return howHungry;
}

public static final void main(String[] args) {
HowHungry hh = new HowHungry();
System.out.println(hh.howHungry(Integer.valueOf(args[0])));
}
}

关于java - 压缩控制 block Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43599789/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com