第16题 是不是在本次循环结束时a才加1

img

++ i 是先加后赋值;i ++ 是先赋值后加;++i和i++都是分两步完成的,
1.第一次循环时,先将a的值赋给a++表达式,此时t=a=10,完成表达式赋值,此时a=11,并且t=10满足循环条件,执行第二次循环
2.执行第二次循环同理,先将a的值赋给a++表达式,此时t=a=11,完成表达式赋值,此时a=12,t=11不满足循环条件,循环结束
所以总共执行了两次循环

i = a++ 和i = ++a的区别:
i = a++:先赋值,后自增,简单的理解就是 i = a,i = i + 1;
i = ++a:先自增,后赋值,简单的理解就是 a = a + 1,i = a;

a在分号结束时才自增,此时t的值还是10

do{ }while() 是不管什么条件都会先执行一次,然后根据条件判断需要继续执行,所以至少会执行一次;
第一次执行时:t=10,(然后 a=11),判断条件满足再次执行,
第二次执行:t=11,(然后a=12),判断条件不满足,不再继续执行