int index = stru_x.front().index; if( (qAbs(box_old_angle.at(index) == 90)) || (qAbs(box_old_angle.at(index) == 270 ))) { min_y -= box_old_l.at(stru_x.front().index)/scale_; min_x -= box_old_w.at(stru_x.front().index)/scale_; } else { min_y -= box_old_w.at(stru_x.front().index)/scale_; min_x -= box_old_l.at(stru_x.front().index)/scale_; }为什么只进入else的部分
时间: 2024-04-07 20:27:42 浏览: 77
map_use_stru_key.rar_C++ map_map结构体_strukey_strukey key
这段代码中只会进入else部分的原因是因为 if 语句中的条件判断有问题。
判断条件 `qAbs(box_old_angle.at(index) == 90)` 应该是 `qAbs(box_old_angle.at(index)) == 90`,即判断 `box_old_angle` 中第 `index` 个元素的绝对值是否等于 90。
同理,判断条件 `qAbs(box_old_angle.at(index) == 270)` 应该是 `qAbs(box_old_angle.at(index)) == 270`,即判断 `box_old_angle` 中第 `index` 个元素的绝对值是否等于 270。
因为原来的判断条件都是 `qAbs()` 函数与一个布尔值的比较结果,结果永远为真或为假,与预期的判断条件不符,所以只会进入 else 部分的代码。
阅读全文