关于第一行输出*的问题
k=0的话第一行怎么输出*?还有k为什么<2*i-1?
k=0的话第一行怎么输出*?还有k为什么<2*i-1?
2017-07-04
k=0的时候不代表for循环不执行,它只是一个用来判断for循环内的语句是否执行的变量,判断的依据就是k<2*i-1,只要满足这个判断依据则for循环就执行。当k=0,i=1时,满足k<2*i-1,则for循环执行一次,之后k自加1变成1,便不满足k<2*i-1,for循环结束,整个for循环只执行一次,也就是第一行只打印一个*。k的值本身没什么实际意义,你要关心的是k变化了多少次,或者说是for循环的次数。这题中第i行的*数量为2*i-1,则for循环的次数就是2*i-1,那么k就可以取0~2*i-1,也可以取1~2*i,甚至可以取2~2*i+1,只要保证for的循环次数为2*i-1即可。
举报