gpt4 book ai didi

java - 带有 "and"/"or"JAVA 的多变量 Switch 语句

转载 作者:行者123 更新时间:2023-12-02 08:34:17 25 4
gpt4 key购买 nike

我是编码新手,正在编写游戏,每个玩家都有四个统计数据:strcondex、和int。对于特定种族的玩家,用户选择两个增加 2 的统计数据,而另外两个统计数据则减少 2。目前,我正在根据选择增加的统计数据来确定应减少哪些统计数据。 stat1 是用户增加的第一个统计数据的名称,stat2 是第二个统计数据的名称,这两个统计数据取自用户输入。这就是我目前将其作为 if/else if/else 的方式。我想知道是否可以轻松地将其编写为 switch 语句。

if((stat1.startsWith("con") && stat2.startsWith("dex"))||(stat1.startsWith("dex") && stat2.startsWith("con")))
{
addStat("int",-2);
addStat("str",-2);
}
else if((stat1.startsWith("con") && stat2.startsWith("int"))||(stat1.startsWith("int") && stat2.startsWith("con")))
{
addStat("dex",-2);
addStat("str",-2);
}
else if((stat1.startsWith("con") && stat2.startsWith("str"))||(stat1.startsWith("str") && stat2.startsWith("con")))
{
addStat("dex",-2);
addStat("int",-2);
}
else if((stat1.startsWith("dex") && stat2.startsWith("int"))||(stat1.startsWith("int") && stat2.startsWith("dex")))
{
addStat("con",-2);
addStat("str",-2);
}
else if((stat1.startsWith("dex") && stat2.startsWith("str"))||(stat1.startsWith("str") && stat2.startsWith("dex")))
{
addStat("int",-2);
addStat("con",-2);
}
else if((stat1.startsWith("str") && stat2.startsWith("int"))||(stat1.startsWith("int") && stat2.startsWith("str")))
{
addStat("dex",-2);
addStat("con",-2);
}

最佳答案

不,不是作为 switch 语句。但仅使用集合和循环就可以更加简洁:

Set<String> allStats = new HashSet<>(Arrays.asList("dex", "str", "con", "int"));
Set<String> increasedStats = new HashSet<>();
// TODO: let the user choose the stats to increase,
// and store them in increadedStats

// then decrease the two other ones:
for (String stat : allStats) {
if (!increasedStats.contains(stat)) {
addStat(stat, -2);
}
}

关于java - 带有 "and"/"or"JAVA 的多变量 Switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47449455/

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