c++ - 了解嵌套 for 循环以打印星号模式

标签 c++ loops for-loop nested

谁能解释一下这个嵌套 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;
    }
}

最佳答案

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

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

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

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

所以你有这样的模式

*
**

上面提到的过程继续,它再次打印 3 组星号,这样它继续并在外循环的条件变为假时立即终止。

关于c++ - 了解嵌套 for 循环以打印星号模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53069573/

相关文章:

java - 尝试测试输入有效性

c++ - 使用两个for循环产生以下星号

c++ - 错误 : "expected constructor, destructor, or type conversion before ' typedef' "

c - 在没有 printf 的情况下限制 c 中的浮点精度

C++:如何在类成员中使用未命名的模板参数?

c - C中的无限循环BUG

c - 在 for 循环和数组中使用 if 语句时遇到问题

python - 如何将具有定义值的字典键添加到列表中

simdjson 库未捕获 C++ 异常

c++ - 这个 Getline 函数的 C++ 代码有什么问题?