gpt4 book ai didi

java - 使 if-else 解决方案更高效、代码行更少 (Java)

转载 作者:行者123 更新时间:2023-11-29 06:29:33 25 4
gpt4 key购买 nike

有没有更有效的方法来编写这样的代码而不使用那么多 if-else 语句?

private int group1, group2, group3, group4;
private int total = 0

public void assignMembers()
{
group1 = (int)((6 * Math.random()) + 1);
group2 = (int)((6 * Math.random()) + 1);
group3 = (int)((6 * Math.random()) + 1);
group4 = (int)((6 * Math.random()) + 1);
}

public void calculateSomething()
{
if(group1 == 3)
{
total += 2;
}
else if(group1 == 5)
{
total += 4;
}

if(group2 == 3)
{
total += 2;
}
else if(group2 == 5)
{
total += 4;
}

if(group3 == 3)
{
total += 2;
}
else if(group3 == 5)
{
total += 4;
}

if(group4 == 3)
{
total += 2;
}
else if(group4 == 5)
{
total += 4;
}
{

如果组有 3 个成员,则 if-else 语句将总数加 2,如果组有 5 个成员,则为 4。

我知道我可以用“组”数组做一些更有效的事情,但是有没有没有数组的方法?也许 calculateSomething 方法可以获取每个组的团队成员数量,而不必重复 if-else 这么多?如有任何建议,我们将不胜感激。

最佳答案

如果您似乎在代码中发现了冗余模式,那么您就应该创建一个可重用的函数。

private int group1, group2, group3, group4;
private int total = 0;

public void assignMembers()
{
group1 = (int)(Math.random()*6 + 1);
group2 = (int)(Math.random()*6 + 1);
group3 = (int)(Math.random()*6 + 1);
group4 = (int)(Math.random()*6 + 1);

calc(group1);
calc(group2);
calc(group3);
calc(group4);
}

public void calc(int group)
{
switch (group){
case 3:
total += 2;
break;
case 5:
total += 4;
break;
}
}

更新答案 - 因为要求是:必须在类外调用该方法。

private int group1, group2, group3, group4;
private int total = 0;

public void assignMembers()
{
group1 = (int)(Math.random()*6 + 1);
group2 = (int)(Math.random()*6 + 1);
group3 = (int)(Math.random()*6 + 1);
group4 = (int)(Math.random()*6 + 1);
}

private void calc(int group)
{
switch (group){
case 3:
total += 2;
break;
case 5:
total += 4;
break;
}
}

public void calculateSomething(){
calc(group1);
calc(group2);
calc(group3);
calc(group4);
}

关于java - 使 if-else 解决方案更高效、代码行更少 (Java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39928095/

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