使if-else解决方案更有效,代码行更少(Java)

蓝色

有没有一种更有效的方式可以在不使用太多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个成员,则if-else语句将总数加4。

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

恩佐基

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

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);
        }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用尾递归更有效的解决方案?

来自分类Dev

使用尾递归更有效的解决方案?

来自分类Dev

查找列表中最小k个元素的更有效解决方案

来自分类Dev

更有效的解决方案?字典作为稀疏向量

来自分类Dev

使用流API编码任务更有效的解决方案?

来自分类Dev

转换熊猫数据框:需要更有效的解决方案

来自分类Dev

检查表达式syntaxt的更有效的解决方案?

来自分类Dev

JSON.NET动态解析(更有效的解决方案)

来自分类Dev

更有效的解决方案?字典作为稀疏向量

来自分类Dev

在 Javascript 中查找重复对象或数组的更有效解决方案?

来自分类Dev

这个 Haskell Tower of Hanoi 解决方案更有效还是只是多余的?

来自分类Dev

更有效的解决方案:项目Euler#2:偶数斐波那契数

来自分类Dev

我全神贯注于复制粘贴代码块的有效解决方案

来自分类Dev

Java传递依赖项问题,没有有效的解决方案

来自分类Dev

加入Left或WHERE解决方案-最有效?

来自分类Dev

算法设计。最佳,最有效的解决方案

来自分类Dev

寻找解决方案的最有效方法-C ++

来自分类Dev

Javascript sin()和cos()的有效解决方案?

来自分类Dev

Hackerrank 不接受有效的解决方案

来自分类Dev

R data.table-仅保留具有重复ID的行(最有效的解决方案)

来自分类Dev

如何有效地将字符串用作Java中的WeakHashMap键或替代解决方案

来自分类Dev

解决某些问题的最有效解决方案是否需要可变数据?

来自分类Dev

更有效的回文代码

来自分类Dev

复制代码的更有效方法

来自分类Dev

查找具有最高的人口一年(最有效的解决方案)

来自分类Dev

大量计算的最佳有效解决方案?

来自分类Dev

在匿名函数内部使用此方法的有效解决方案是什么?

来自分类Dev

如何提出这样的解决方案?(检查数独是否有效)

来自分类Dev

欧拉计划31:为什么该解决方案有效?

Related 相关文章

  1. 1

    使用尾递归更有效的解决方案?

  2. 2

    使用尾递归更有效的解决方案?

  3. 3

    查找列表中最小k个元素的更有效解决方案

  4. 4

    更有效的解决方案?字典作为稀疏向量

  5. 5

    使用流API编码任务更有效的解决方案?

  6. 6

    转换熊猫数据框:需要更有效的解决方案

  7. 7

    检查表达式syntaxt的更有效的解决方案?

  8. 8

    JSON.NET动态解析(更有效的解决方案)

  9. 9

    更有效的解决方案?字典作为稀疏向量

  10. 10

    在 Javascript 中查找重复对象或数组的更有效解决方案?

  11. 11

    这个 Haskell Tower of Hanoi 解决方案更有效还是只是多余的?

  12. 12

    更有效的解决方案:项目Euler#2:偶数斐波那契数

  13. 13

    我全神贯注于复制粘贴代码块的有效解决方案

  14. 14

    Java传递依赖项问题,没有有效的解决方案

  15. 15

    加入Left或WHERE解决方案-最有效?

  16. 16

    算法设计。最佳,最有效的解决方案

  17. 17

    寻找解决方案的最有效方法-C ++

  18. 18

    Javascript sin()和cos()的有效解决方案?

  19. 19

    Hackerrank 不接受有效的解决方案

  20. 20

    R data.table-仅保留具有重复ID的行(最有效的解决方案)

  21. 21

    如何有效地将字符串用作Java中的WeakHashMap键或替代解决方案

  22. 22

    解决某些问题的最有效解决方案是否需要可变数据?

  23. 23

    更有效的回文代码

  24. 24

    复制代码的更有效方法

  25. 25

    查找具有最高的人口一年(最有效的解决方案)

  26. 26

    大量计算的最佳有效解决方案?

  27. 27

    在匿名函数内部使用此方法的有效解决方案是什么?

  28. 28

    如何提出这样的解决方案?(检查数独是否有效)

  29. 29

    欧拉计划31:为什么该解决方案有效?

热门标签

归档