相关疑难解决方法(0)

如何避免很多if else条件

我已经阅读了很多关于代码重构和避免if else语句的主题.实际上,我有一个班级,我使用了很多if - else条件.

更多细节:我正在使用pull解析器,在我的soap响应的每一行,我将检查是否有我感兴趣的标签,如果没有,检查另一个标签等:

 if(eventType == XmlPullParser.START_TAG) {
            soapResponse= xpp.getName().toString();

            if (soapResponse.equals("EditorialOffice")){  
                eventType = xpp.next();
                if (xpp.getText()!=null){
                editorialOffice += xpp.getText();
                }
            }   
            else if (soapResponse.equals("EditorialBoard")){  
                eventType = xpp.next();
                if (xpp.getText()!=null){
                editorialBoard += xpp.getText();
                }
            }
            else if (soapResponse.equals("AdvisoryBoard")){  
                eventType = xpp.next();
                if (xpp.getText()!=null){
                advisoryBoard += xpp.getText();
                }
            }   
        }
        eventType = xpp.next();
     }
Run Code Online (Sandbox Code Playgroud)

现在,我想使用somethimg else,而不是那些if else条件,但我不知道是什么.

你能给我一个例子或一个好的教程页面吗?

谢谢.

java refactoring if-statement

38
推荐指数
7
解决办法
5万
查看次数

多态如何替换循环内的if-else语句?

多态如何在循环中替换if-else语句或Switch?特别是它总能取代if-else?我在循环中使用的大多数if-thens都是算术比较.这个问题是从这个问题中产生的.

int x;
int y;
int z;

while (x > y)
{
     if (x < z)
     {
         x = z;
     }
}
Run Code Online (Sandbox Code Playgroud)

如何使用多态?
注意:我用Java编写了这个,但我对任何OOL感兴趣.

language-agnostic oop polymorphism loops if-statement

17
推荐指数
1
解决办法
1万
查看次数

编写决策代码的更优雅的方法是评估具有不同优先级的多个输入?

我正在为游戏编写一些决策AI,我已经提出了以下代码.

if(pushedLeft && leftFree && leftExists)
    GoLeft();
else if(pushedRight && rightFree && rightExists)
    GoRight();
else if(leftFree && leftExists)
    GoLeft();
else if(rightFree && rightExists)
    GoRight();
else if(pushedLeft && leftExists)
    GoLeft();
else if(pushedRight && rightExists)
    GoRight();
else if(leftExists)
    GoLeft();
else if(rightExists)
    GoRight();
// else do nothing...
Run Code Online (Sandbox Code Playgroud)

这是一个相当长的if语句流,具有类似的条件!

请注意,它使这个很好的模式:

L1 L2 L3  -> L
R1 R2 R3  -> R
   L2 L3  -> L
   R2 R3  -> R
L1    L3  -> L
R1    R3  -> R
      L3  -> L
      R3  -> R …
Run Code Online (Sandbox Code Playgroud)

c# design-patterns if-statement

12
推荐指数
2
解决办法
2810
查看次数

重构java代码

好吧,这个问题看起来很像:

在程序中替换或替换if..else if..else树的最佳方法是什么?

考虑这个问题已关闭!


我想重构看起来像这样的代码:

String input; // input from client socket.
if (input.equals(x)) {
  doX();
} else if (input.equals(y)) {
  doY();
} else {
  unknown_command();
}
Run Code Online (Sandbox Code Playgroud)

检查来自套接字的输入以执行某些操作的代码,但我不喜欢这种if else结构,因为每次向服务器(代码)添加新命令时都必须添加一个新的if else,这是丑陋的.删除命令时if else也必须修改.

java refactoring

6
推荐指数
1
解决办法
1381
查看次数

避免多重if条件

可能重复:
在程序中替换或替换if..else if..else树的最佳方法是什么?

如何避免多个if条件?例如:

Public void search(String a,b,c,d,e)
String aTerm;
Run Code Online (Sandbox Code Playgroud)

现在哪个传递参数的单个和多个组合包含"aTerm"?例如,输出可能如下:

1 - aTerm appears in "a" only
2 - aTerm appears in "a,c", and "e"
3 - aTerm appears in "d" and "e"
Run Code Online (Sandbox Code Playgroud)

对于每个单独或可能的组合,我想调用一个特定的函数.我写了很多条件,但看起来很糟糕.例如:

If(aTerm. equalsIgnoreCase(a)){ call function a();}
If(aTerm. equalsIgnoreCase(b)){ call function b();}
If(aTerm. equalsIgnoreCase(b) and aTerm. equalsIgnoreCase(b)){ call function ab();}
…………………… and so on………………………….
Run Code Online (Sandbox Code Playgroud)

有没有更清洁的方法呢?解决方案可以是PHP或Java.

php java

5
推荐指数
1
解决办法
1680
查看次数

Java中有很多If条件

我刚开始学习java并且有一个非常基本的问题.我有一个标签,我希望在1到18之间的随机整数落在特定数字上时更改颜色.这些数字并不奇怪或偶数,所以我不能用它.

现在我有这个:

    if (Random == 1 || Random == 2 || Random == 5 || Random == 7 || Random == 12 || Random == 14 || Random == 16 || Random == 18)  
        label_number.setForeground(SWTResourceManager.getColor(SWT.COLOR_BLUE));
    else if (Random == 3 || Random == 4 || Random == 6 || Random == 8 || || Random == 9 | Random == 10 || Random == 11 || Random == 13 || Random == 15 || Random == 17)
        label_wheelNumber.setForeground(SWTResourceManager.getColor(SWT.COLOR_GREEN));
Run Code Online (Sandbox Code Playgroud)

我知道它看起来很傻,而且我觉得这样做是个白痴.您有什么推荐的吗?我没上过课,所以任何解释都非常有用.谢谢

java

3
推荐指数
2
解决办法
266
查看次数