我已经阅读了很多关于代码重构和避免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条件,但我不知道是什么.
你能给我一个例子或一个好的教程页面吗?
谢谢.
多态如何在循环中替换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感兴趣.
我正在为游戏编写一些决策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) 好吧,这个问题看起来很像:
在程序中替换或替换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也必须修改.
如何避免多个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.
我刚开始学习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)
我知道它看起来很傻,而且我觉得这样做是个白痴.您有什么推荐的吗?我没上过课,所以任何解释都非常有用.谢谢