gpt4 book ai didi

java - 简化 if 语句

转载 作者:行者123 更新时间:2023-12-02 08:31:22 24 4
gpt4 key购买 nike

我有一个程序,其中有一些 if 语句,与我将要向您展示的程序类似。我想知道你们是否可以帮助我以任何方式简化这个方程。我之所以问这个问题,是因为在我的 Notepad++ 中,它持续了 443 列,如果需要的话进行编辑真的很令人沮丧,而且随着我不断添加变量,它会变得越来越长。基本上,对于我的许多类似 if 语句之一的示例,我只想在我的任何 SliderBars 尝试在 发生时提高值时执行操作int (rpg.StatisticPoints) 等于或小于 0。我用来确定 slider 值是否上升的方法是将其当前值与与 slider 关联的 int,并检查结果是否为正。

if (rpg.StatisticPoints <= 0 && 
((rpg.WillSlider.getValue() - rpg.Will) < 0) &&
((rpg.PerceptionSlider.getValue() - rpg.Perception) < 0) &&
((rpg.StrengthSlider.getValue() - rpg.Strength) < 0) &&
((rpg.DexteritySlider.getValue() - rpg.Dexterity) < 0) &&
((rpg.ConstitutionSlider.getValue() - rpg.Constitution) < 0) &&
((rpg.CharismaSlider.getValue() - rpg.Charisma) < 0) &&
((rpg.IntelligenceSlider.getValue() - rpg.Intelligence) < 0))
{
//Do actions
}

我知道这里有很多你不熟悉的变量,因为你没有看到我的完整代码,但我的完整源代码有 100 行长,我的问题只是基于逻辑,而不是真正的问题与语法。

最佳答案

当前解决方案的问题不仅仅是一行很长,还在于人们很难阅读和理解实际正在验证的内容。

您可以创建一个辅助方法来构建该验证的 boolean 值,同时为其提供一个辅助方法,而不是使用 if 语句中的所有条件一个有意义的名字。

例如:

private boolean isValidSomething(){

boolean result = firstCondition;
result &= secondCondition;
...

return result;

}

这样您的所有检查将集中在一个地方,并且可读性会提高很多,因为您的 if 将变为:

 if(isValidSomething()) {...}

当然,请使用在您的应用程序中有意义的名称创建该方法。

如果您正在验证几个有意义的不同条件,请多加努力并将它们分解到自己的方法中。

最主要的是将逻辑分解为在一起有意义的部分,例如:

private boolean validStatistics() {
return statistics > 0;
}


private boolean validWill() {
return will > 0;
}

....

您的主要验证将类似于:

private boolean validCharacter() {
boolean valid = validStatistics();
valid &= validWill();
...
return valid;
}

关于java - 简化 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16669590/

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