C++嵌套for循环内层循环实现星号递增原理咨询
理解内层循环实现星号递增的机制
先把你的代码再贴一遍,方便对照分析:
#include <iostream> using namespace std; int main() { int i,j,rows; cout<<"Enter the number of rows: "; cin>>rows; for(i=1;i<=rows;++i) { for(j=1;j<=i;++j) { cout<<"* "; } cout<<"\n"; } return 0; }
咱们一步步拆解内层循环的工作逻辑,其实核心就是外层循环的变量i在“指挥”内层循环的执行次数:
- 外层循环的
i是行数计数器,每完成一次外层循环就换行,这个你已经get到了。关键是i的值会随着外层迭代不断递增——第一次外层循环时i=1,第二次i=2,直到i等于你输入的rows数值。 - 内层循环的终止条件是
j <= i,也就是说,内层循环的执行次数完全由当前外层循环的i值决定:- 当外层
i=1时,内层j从1开始,只循环1次(因为j<=1),输出1个*; - 当外层
i=2时,内层j会从1跑到2,循环2次,输出2个*; - 当外层
i=3时,内层循环跑3次,输出3个*; - 以此类推,每一次外层循环的
i加1,内层循环的执行次数就多1次,星号数量自然就逐行递增了。
- 当外层
举个具体的例子,假设你输入rows=3:
- 第一次外层循环(i=1):内层循环执行1次 → 输出
*,随后换行; - 第二次外层循环(i=2):内层循环执行2次 → 输出
* *,随后换行; - 第三次外层循环(i=3):内层循环执行3次 → 输出
* * *,随后换行。
这样就形成了星号逐行递增的金字塔效果啦!
内容的提问来源于stack exchange,提问作者drunk mado
相关产品推荐
相关产品推荐

