不要在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中同时赋值和判断时,要把赋值的部分用括号括起来:

 

输出为:

 

 如果没有括号:

 

 

 

 显然不符合逻辑

 

posted @ 2019-11-24 01:00  略略略——  阅读(2000)  评论(0编辑  收藏  举报