当没有使用else语句时,这里发生了什么?

时间:2016-01-31 05:46:27

标签: java if-statement

这是编码蝙蝠练习: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;
}

2 个答案:

答案 0 :(得分:1)

仅当第一个else语句为 false 时,第一个块才会运行ifelse语句只有在上述条件语句均未返回true(ifelse if)时才能运行。但是,无论第一个if语句是还是为false,第二个块都会运行。

查看此文档以获取进一步说明:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html

答案 1 :(得分:0)

第二个块执行所有显示的代码,因此总是采用回答的子串