我们平时在写代码的时候经常这样写:
1 if ((!access(path[0], F_OK)) && (fpga_cs == 1)) 2 { 3 printf("%s file fpga_a is exist.\n",path[0]); 4 fpga_path = path[0]; 5 } 6 else if ((!access(path[1], F_OK)) && (fpga_cs == 2)) 7 { 8 printf("%s file fpga_b is exist.\n",path[1]); 9 fpga_path = path[1]; 10 } 11 else if (!access(path[2], F_OK)) 12 { 13 printf("%s file fpga_all is exist.\n",path[2]); 14 fpga_path = path[2]; 15 }
或者
1 if ((!access(path[0], F_OK)) && (fpga_cs == 1)) 2 { 3 printf("%s file fpga_a is exist.\n",path[0]); 4 fpga_path = path[0]; 5 } 6 if ((!access(path[1], F_OK)) && (fpga_cs == 2)) 7 { 8 printf("%s file fpga_b is exist.\n",path[1]); 9 fpga_path = path[1]; 10 } 11 if (!access(path[2], F_OK)) 12 { 13 printf("%s file fpga_all is exist.\n",path[2]); 14 fpga_path = path[2]; 15 }
那么这两种究竟有什么区别呢?小编最近就大意踩了这个坑,或许可以分享给初学者
1、如果你使用的是if-else-if的时候
级联的 if-else-if 多分支结构的执行流程是:从前往后计算各个表达式的值,如果某个表达式的值为真,则执行对应的语句,并终止整个多分支结构的执行
2、如果你使用的是if-if-if 的时候
这里的每个if都会执行一遍,都执行完结束才会终止
原文:https://www.cnblogs.com/347zsj/p/11298875.html