这是编码蝙蝠练习:Java>预热-2>字符串X
第二块代码在做什么?为什么会产生错误的答案?
public String stringX(String str) {
String answer = "";
for (int i = 0; i < str.length(); i++) {
if (str.substring(i , i+1).equals("x") && i != 0 && i != str.length()-1) {
answer = answer + "";
}
else {
answer = answer + str.substring(i , i + 1);
}
}
return answer;
}
VS
public String stringX(String str) {
String answer = "";
for (int i = 0; i < str.length(); i++) {
if (str.substring(i , i+1).equals("x") && i != 0 && i != str.length()-1) {
answer = answer + "";
}
answer = answer + str.substring(i , i + 1);
}
return answer;
}
答案 0 :(得分:1)
仅当第一个else
语句为 false 时,第一个块才会运行if
。 else
语句只有在上述条件语句均未返回true(if
和else if
)时才能运行。但是,无论第一个if
语句是
查看此文档以获取进一步说明:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html
答案 1 :(得分:0)
第二个块执行所有显示的代码,因此总是采用回答的子串