首先说一下while:
括号里面表示while语句执行的条件,并且在C和C++中有这样的规定:逻辑类型和整数类型可以互换。举个例子:如果括号中表示的是0(注意是整数0),则条件等价于false;反之,如果括号中表示的是非0的整数,则条件等价于true。
其次是后面的a++*2的运算:
根据C语言的运算符先后次序可知,此式应该先算a++,然后将所得结果*2即可得到最后答案。
举个例子吧:
假如你输入的n是4,则程序运行的结果:
第一次while循环:此时n=4,a=0,则a++*2=2;
第二次while循环:此时n=3,a=1,则a++*2=4;
第三次while循环:此时n=2,a=2,则a++*2=6;
第四次while循环:此时n=1,a=3,则a++*2=8;
第五次while循环:此时由于n=0,while括号中的条件为false,故程序不执行while语句中的内容,故最后的结果就是:2,4,6,8