不要在if判断语句中同时声明变量,注意在if中同时赋值和判断的优先级

int sze = listVertex.size();
    if (sze > 0) {

以上是正确形式,以下是错误形式。

if (int sze = listVertex.size()> 0) {

用这种边判断边声明赋值的偷懒办法,最后sze其实根本没有被赋予你想要的值,导致后面程序崩溃。可以通过断点调试看得一清二楚。

另外,if语句中同时进行赋值和判断时要注意运算符优先级。

参考:https://zh.cppreference.com/w/c/language/operator_precedence

我们发现,赋值符号“=”的优先级是小于判断符号"==""!="的,也就是说,if中同时赋值和判断时,要把赋值的部分用括号括起来:

输出为:

 如果没有括号:

 显然不符合逻辑

原文地址:https://www.cnblogs.com/mrlonely2018/p/11921013.html