我对 IF() 表达式后是否需要大括号感到困惑。
当使用 IF(){...}ELSE{...} 时,我习惯在 IF 和 ELSE block 周围使用大括号。
但是当我不使用 ELSE block 时,它可以在没有大括号的情况下工作,并且在有大括号的情况下失败:
工作原理: IF()...
失败:IF(){...}
下面的示例,这是针对微 Controller 的
#include "simpletools.h"
int main()
{
while(1)
{
print("button = %d\n", input(3));
if(input(3) == 1) //works if no braces
high(14);
pause(50);
low(14);
pause(50);
} //while
} // main
最佳答案
if
之后有一条语句。如果您需要多个语句,则必须将它们组合成一个复合语句。
if (input(3) == 1)
high(14);
pause(50);
low(14);
pause(50);
无论input
返回什么,都会执行pause
函数和low
。换行符的放置位置不会影响 C 解析代码的方式。您需要大括号将 4 个函数调用组合成一个复合语句:
if (input(3) == 1) {
high(14);
pause(50);
low(14);
pause(50);
}
else
子句的缺失或存在不会改变任何内容,除了
if (input(3) == 1)
high(14);
pause(50);
else ...
会导致错误,因为 else
未连接到任何 if
语句; if
以单个语句 high(14)
结束,而 pause(50)
完全是一个单独的语句,因此 else
不合适。
关于C语言: if() with no else(): using braces fails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21441560/