嵌套while循环的问题
Trouble with nested while loop
请帮助我,我正在使用代码块 16,我不知道为什么这段代码不打印正方形,只是一个正方形!
另一件事是我如何改进这段代码?
我还在学习,请不要生我的气
非常感谢你的时间
#include <iostream>
using namespace std;
int main () {
char a = 'a', d = ' ';
int b = 0, c = 0;
while (c < 5) {
cout << a;
c = c + 1;
}
cout << endl;
c = 0;
while (c < 3) {
cout << a;
while (b < 3) {
cout << d;
b = b + 1;
}
cout << a << endl;
c = c + 1;
}
c = 0;
while (c < 5) {
cout << a;
c = c + 1;
}
cout << endl;
return 0;
}
您忘记将 b
重新初始化为 0
。
使用for
会更容易阅读:
for(int c = 0; c < 3; ++c) {
cout << a;
for (int b = 0; b < 3; ++b) {
cout << d;
}
cout << a << endl;
}
问题在于,您不会在每次循环外循环时都重置 b
的值。因此,在正方形的第二行(第一行有空格),它工作得很好。但是,在第三行,当您到达内部 while 循环时,b
仍然等于上一次通过该循环的 3。
如果我也可以同时提出建议,请有意义地命名您的变量,并且错误会变得更加明显。我建议使用变量 row
和 column
而不是 b
和 c
。有时你只需要更清晰的变量名,错误就很明显了。
请帮助我,我正在使用代码块 16,我不知道为什么这段代码不打印正方形,只是一个正方形! 另一件事是我如何改进这段代码? 我还在学习,请不要生我的气 非常感谢你的时间
#include <iostream>
using namespace std;
int main () {
char a = 'a', d = ' ';
int b = 0, c = 0;
while (c < 5) {
cout << a;
c = c + 1;
}
cout << endl;
c = 0;
while (c < 3) {
cout << a;
while (b < 3) {
cout << d;
b = b + 1;
}
cout << a << endl;
c = c + 1;
}
c = 0;
while (c < 5) {
cout << a;
c = c + 1;
}
cout << endl;
return 0;
}
您忘记将 b
重新初始化为 0
。
使用for
会更容易阅读:
for(int c = 0; c < 3; ++c) {
cout << a;
for (int b = 0; b < 3; ++b) {
cout << d;
}
cout << a << endl;
}
问题在于,您不会在每次循环外循环时都重置 b
的值。因此,在正方形的第二行(第一行有空格),它工作得很好。但是,在第三行,当您到达内部 while 循环时,b
仍然等于上一次通过该循环的 3。
如果我也可以同时提出建议,请有意义地命名您的变量,并且错误会变得更加明显。我建议使用变量 row
和 column
而不是 b
和 c
。有时你只需要更清晰的变量名,错误就很明显了。