Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 不同{结构的“如果”句的区别_C_If Statement - Fatal编程技术网

C 不同{结构的“如果”句的区别

C 不同{结构的“如果”句的区别,c,if-statement,C,If Statement,下列句子之间的区别是什么 if (i1) if (i2) s1; else s2; 及 及 您的第一个代码片段缩进严重,应为: if (i1) if (i2) s1; else s2; 这相当于你的第二个片段,但明显不同于第三个片段: if (i1) { if (i2) s1; } else { s2; } 此问题称为悬空else问题。通过始终在if命令的块周围使用大括号{和},可以完全避免此问题。您可以将第一个和第二

下列句子之间的区别是什么

if (i1)
   if (i2) s1;
else s2;


您的第一个代码片段缩进严重,应为:

if (i1)
   if (i2)
       s1;
   else
       s2;
这相当于你的第二个片段,但明显不同于第三个片段:

if (i1) {
   if (i2)
       s1;
} else {
   s2;
}
此问题称为悬空else问题。通过始终在if命令的块周围使用大括号{和},可以完全避免此问题。您可以将第一个和第二个片段编写为:

if (i1) {
   if (i2) {
       s1;
   } else {
       s2;
   }
}
第三个是

if (i1) {
   if (i2) {
       s1;
   }
} else {
   s2;
}

Wikipedia有一篇关于这个问题的文章:

为什么不测试它?并且总是使用大括号。这样做会提高可读性,减少出错的机会。大括号的意思是{和}对不起,我的英语不好。还有,埃德,这不是作业,这是我正在读的一本书。如果是从一本书中找到的,答案会在前一章或后面。我的座右铭是:永远使用背带,你不想被人发现你的裤子在裤子下面。不是吗,它只是显示了不同的可能性。你知道任何网站链接都能很好地解释这一点吗?第二个例子,为什么在第二个if之后不使用大括号?@igagazovda:我的目的是复制你的片段,只是改变缩进。我澄清了答案。
if (i1) {
   if (i2) {
       s1;
   } else {
       s2;
   }
}
if (i1) {
   if (i2) {
       s1;
   }
} else {
   s2;
}