为什么此“ if”语句打印“不可能”?

时间:2019-12-20 13:54:18

标签: java function if-statement

public class Experiment5 {

private static int countChar(String string, char c) {
    int count = 0;
    for (int i = 0; i < string.length(); i++) {
        if (string.charAt(i) == c) {
            count++;
        }
    }
    return count;
}

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    String input = scan.nextLine();

    if (countChar(input, '_') > 0){
        if ((countChar(input, 'X') - countChar(input, '0') >= 2) || (countChar(input, '0') - countChar(input, 'X') >= 2) ) {
            System.out.println("Impossible");
            return;
        }
        System.out.println("Game not finished");
    }
}

输入:
XO_OOX_X_

我认为结果应该是“游戏未完成”,因为“ X”和“ O”的计数之差为0。
 那为什么为什么返回“不可能”呢?

谢谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您的if语句寻找0而不是Os。 ^^