我希望对没有括号的if
和if else
语句以及如何阅读它们做一些澄清。我可以轻松地阅读if else
和else if
括号中的语句,它们对我有意义,但这些一直让我感到困惑,这是一个示例问题。
if (x > 10)
if (x > 20)
printf("YAY\n");
else printf("TEST\n");
答案 0 :(得分:3)
如果没有括号,else
将立即与if
相关联。所以,要正确地展示你的例子:
if (x > 10)
if (x > 20)
printf("YAY\n");
else // i.e., x >10 but not x > 20
printf("TEST\n");
答案 1 :(得分:3)
如果if / else上没有括号,则if后面的第一个语句将被执行。
如果声明:
if (condition)
printf("this line will get executed if condition is true");
printf("this line will always get executed");
如果/否则:
if (condition)
printf("this line will get executed if condition is true");
else
printf("this line will get executed if condition is false");
printf("this line will always get executed");
注意:如果if和匹配的else之间有多个命令,你的代码就会中断。
if (condition)
printf("this line will get executed if condition is true");
printf("this line will always get executed");
else
printf("this else will break since there is no longer a matching if statement");
答案 2 :(得分:2)
不带括号的if语句只会考虑if:
之后的下一个表达式 if(foo > 5)
foo = 10;
bar = 5;
这里,如果foo大于5,则foo将仅设置为10,但bar将始终设置为5,因为它不在if语句的范围内,这将需要括号。
答案 3 :(得分:-1)
if (x > 10)
{
if (x > 20)
{
printf("YAY\n");
}
else
{
printf("TEST\n");
}
}