【发布时间】:2013-11-23 23:03:17
【问题描述】:
这就是我想要的。
如果word.length() > 0 则删除或插入单词。
所以,我们可以这样构造代码:
if(word.length()>0){
if(action.equals("insert")){
insert(word);
}
else if(action.equals("delete")){
delete(word);
}
}
但是,上面嵌套的 if 很难阅读,所以我们可以这样做
if(word.length()>0 && action.equals("insert")){
insert(word);
}
else if(word.length()>0 && action.equals("delete")){
delete(word);
}
但是,上面的代码重复了word.length() 2 次,这会导致重复 & 这不好。所以如果我们尝试
if(word.length()>0){
System.out.println("ok to insert or delete");
}
else if(action.equals("insert")){
insert(word);
}
else if(action.equals("delete")){
delete(word);
}
但是,即使word.length==0,上述代码也会执行插入或删除操作。
这很令人困惑,因为 wiki http://en.wikipedia.org/wiki/Conditional_(programming),他们说:
如果条件1 那么 --声明 elseif 条件2 然后 -- 更多陈述 elseif 条件3 然后 -- 更多陈述; ... 别的 ——其他声明; 万一;"只有第一个条件之后的语句 为真将被执行。将跳过所有其他语句。”
wiki 所说的意思是,if condition1 ==true 然后执行 condition2,但如果 if condition1 ==false 则跳过以下所有条件(条件 2、3、...)
但这在 Java 中不会发生吗? 我糊涂了??
【问题讨论】:
-
What wiki said mean, if condition1 ==true then do the condition2什么?没有。 -
它说“只有第一个条件为真的语句才会被执行。所有其他语句都将被跳过。”
-
“else”的意思是“否则”。
-
使用最顶层,嵌套
if。真的没有什么问题。 -
你的第一个解决方案很好。
标签: java if-statement