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