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

353 阅读1分钟

 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,都发现不了这个错误。。。。。。