C语言中else总是与它上面的最近的IF配对

来源:百度知道 编辑:UC知道 时间:2024/06/30 16:16:14
IF()
IF()
ELSE()
ELSE()第二个ELSE不是与第二个IF最近吗?那这个IF不是配了两个ELSE了?好怪啊!它明明和第一个IF配的,书上是不是说错了啊!~

else与前面最近的且尚未配对的if配对

"else总是与它上面的最近的IF配对" 应加“尚未配对的”
else总是与它上面的最近的尚未配对的IF配对。

例如:
if(){ } else if () {} else {};
第一个if配第一个else,第二个if 配第二个else。

if (1 == 1) if (2==2) printf("a\n"); else {printf("b\n"); } else{printf("c\n");};

if (1 != 1) if (2==2) printf("a\n"); else {printf("b\n"); } else{printf("c\n");};

if (1 != 1) if (2!=2) printf("a\n"); else {printf("b\n"); } else{printf("c\n");};
上面三句,第一个if配第二个else,第二个if 配第一个else。(编译后运行,从输出结果就明白配对情况)

第一个if与最后的else是配对的,中间两个配对,是包含的关系

一个if只配对一个else,至于你说与最近的配对.那确实!但IF是循环语句,有内外层循环,也就是你只要在每个语句加花括号.当然也可以不加,这只是易于了解哪个是它的语句罢了.

是跟第一个配对的
一个if只配对一个else所以第一个else跟第一个if已经配对了