For循环中While循环的代码说明

时间:2015-07-01 20:13:28

标签: c++ loops for-loop while-loop

任何人都可以向我解释为什么输出以下程序,如果输入值:5,222,2043,29,2,20053是22222?我试图在纸上解决它,但我无法得到这个结果。

Select 
    veh.uuid,
    veh.license_plate,
    fue.fuel_tank
From 
    Fueling fue,
    Vehicle veh
Where 
    veh.uuid = fue.uuid AND
    fue.uuid not in (Select distinct uuid from Fueling where fuel_tank like "t")

1 个答案:

答案 0 :(得分:1)

你的while循环每次将x除以10。既然你正在处理整数,那只会将十进制数字向右移动:7234 -> 723。 这样做直到它小于10,或者换句话说,剩下一个(第一个)数字:7。然后它再次乘以10 ^(乘以10):7000。
这意味着你的for循环中的代码会使每个x中的第一个数字为零。所以最后你会:200 + 2000 + 20 + 2 + 20000