c语言 - 如果我使用许多"如果"而只有一个"其他"怎么办



stackoverflow朋友们,我在大学里一直在学习C语言。

在 stuyding 时,我开始好奇如果我使用许多if结构而只有一个else,就会出现技术错误。

例如:

if (condition 1)
if (condition 2)
if (condition 3)
if (condition 4)
else

在上面的情况下,我担心如果变量不符合第一个if结构的条件, 它将"直接"转到其他,而不是第二个if.

我的担忧是真的吗?还是永远不会发生?

提前谢谢你。

根据 C11 标准草案 6.8.4.1p3:

else与词法上最接近的前if相关联,即 语法允许。

也就是说,在嵌套的if结构中,它将对应于最里面的if("if (condition 4)"(。

如果你想依次检查每个条件,找到匹配项,请使用

if (condition 1) {
} else if (condition 2) {
} else if (condition 3) {
} else if (condition 4) {
} else {
}

这实际上与:

if (condition 1) {
} else {
if (condition 2) {
} else {
if (condition 3) {
} else {
if (condition 4) {
} else { 
}
}
}
}

相关内容

最新更新