首页 > 解决方案 > 了解嵌套 For 循环以打印星号模式

问题描述

有人可以解释这个嵌套的 For 循环如何打印星号模式。我不明白实际循环是如何工作并打印模式的,我知道 cout 打印 astrix('s) 但它怎么知道打印 1 astrix,然后是 2,然后是 3.. 等等

#include "pch.h"
#include <iostream>
using namespace std;
int main() {
int a, cols, rows;
cout << " Please enter a number: ";
cin >> a;

for (cols = 1; cols < a + 1; cols++) {
    for (rows = 0; rows < cols; rows++)
        cout << "*";
    cout << endl;
    }
}

标签: c++loopsfor-loopnested

解决方案


首先,您接受用户输入的模式大小。现在假设 a 的输入或值为 3。

现在,当第一个循环执行时,它像这样开始 for(cols=1; cols<4; cols++) 现在当执行进入嵌套循环时,循环看起来像这样 for(rows=0; rows<1; rows++)

在嵌套循环中,条件得到满足,因为 0 小于 1,因此它打印第一个星号“*”并且内部循环停止,并且执行进一步移动并且 cout << endl 移动到换行符,即它插入换行符.

对于外循环的第二次迭代,cols 的值变为 2,然后再次进入内循环或嵌套循环。这里的内部循环看起来像这样:- for(rows=0; rows<2; rows++) 现在 0 小于 2,所以循环执行并打印一个星号“*”,内部循环的执行继续,并且再次显示 rows 的值递增到 1。由于 1 也小于 2,所以它再次打印一个星号,内部循环的执行停止,在控制台中留下两个星号,即“**”。

所以你有这样的模式

*
**

上面提到的过程继续,它再次打印 3 组星号,就像这样,一旦外循环的条件变为假,它就会继续并终止。


推荐阅读