它们之间的区别是什么:
if (expr1) {stmt}
else if (expr2) {stmt}
else if (expr3) {stmt}
else {stmt}和相同的代码块,写成:
if (expr1) {stmt}
if (expr2) {stmt}
if (expr3) {stmt}
else {stmt}发布于 2011-09-19 06:37:56
在第一个语句中,每个语句块都是互斥的;该结构保证只执行其中的一个语句。
第二个就不是这样了。考虑一下:
if (a == 2) { /* blah */ }
if (a == 3) { /* blah */ }
if (a < 5) { /* blah */ }如果为a == 2,则将执行两个块的。
发布于 2011-09-19 06:43:23
这里有另一个很好的例子来看看它是如何工作的。
此示例将打印"FirstSecond":
if(1) {
printf("First");
}
if(1) {
print("Second");
}这只是打印"First":
if(1) {
printf("First");
}
else if(1) {
print("Second");
}发布于 2011-09-19 06:38:45
在您的第一个代码中,最多只能执行一个块。
在第二段代码中,所有的块都可以执行。(除了最后一件事。)
https://stackoverflow.com/questions/7464906
复制相似问题