if语句的一个编译器只报warning的错误记录,其实已经是bug了,但是没报错,一直不怎么看warning,今天无意间看到了,记录一下,直接上代码了。

#include <iostream>
using namespace std;

int main()
{
if(0);
{
cout << "asdfsdafsda";
}

return 0;
}

分析:

if()语句后多了个";"号,相当于把if(){}语句割裂了,

变成了

if();

{};

 

这样括弧里的代码就一直被执行了。if判据相当于没生效。

 

其实已经破坏了if语句的语法结构了,多个else的话,编译就会报错 了。就很容易查出来了。

所以建议大家写if语句还是能加else尽量加上吧,不然出了这个错,很容易遗漏,要不是看了warning,都发现不了这个错误。。。。。。

 

if语句的一个错误记录,多了个“;”号_ios