如果我删除if语句上的大括号,为什么代码有效

时间:2015-02-13 12:43:22

标签: java if-statement

我一直在尝试自学一些java代码。我遇到了着名的嘶嘶声问题。我有一个问题,在最后一个if语句中输出是好的,如果它没有括在花括号中。将大括号内的语句包含在内的区别是什么? 编辑:输出大括号(嘶嘶声,嗡嗡声,嘶嘶声,嗡嗡声,嘶嘶声,嗡嗡声...) 输出没有大括号*正确答案(1,2,fizz,4,嗡嗡声,嘶嘶......)

    boolean checker = true;
    for (int i  = 0; i < 100; i++){

        if (i % 3 == 0){
            System.out.print("Fizz");
            checker = false;
        }

        if (i % 5 == 0){
            System.out.print("Buzz");
            checker = false;
        }

        if (checker) { // here is the code if curly brace is removed the output is fine
            System.out.print(i);
            checker = true;
            System.out.print(",");
        }
    }
}

3 个答案:

答案 0 :(得分:3)

当你使用 if,else或时,你不需要那里{}但它只会在if,else或for之后评估第一行

if(condition)
//this line is affected by if block
//this is not

if(condition){
//all line in affected by if block
}

答案 1 :(得分:1)

它适用于你的原因是,假设你得到3可以被3整除,那么这意味着你将checker变量设置为false,你永远不会进入if(checker)条件块。

使用大括号,可以为if条件定义块或边界。因此,如果要在if条件中执行多个语句,可以使用大括号。默认情况下,如果您不提供大括号,那么只有在if将要执行之后的下一个语句。

注意:即使您在if中执行单个语句,我建议您使用大括号。

答案 2 :(得分:0)

没有括号,它将执行该条件的第一个语句。之后它停止使用条件。