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中同时赋值和判断时,要把赋值的部分用括号括起来:
输出为:
如果没有括号:
显然不符合逻辑