嵌套循环 C++
Nested loops C++
所以我正在制作一个程序,该程序将根据用户所需的大小创建一个正方形。到目前为止,我的代码读取值,打印出正方形的顶部,但由于我创建了嵌套循环,我正在了解如何设置边。这里的问题是我需要循环在每次存在时重置它的值。
到目前为止,这是我的代码:
#include <iostream>
using namespace std;
int main(int,char**) {
int x;
int z=1;
int l=0;
int n=0;
int q=1;
int m=0;
int o=0;
do{
cout << "Enter length between 0 and 64 (-1 to exit): ";
cin >> x;
if (x>-1&&x<64){
cout << "+";
for (;x-2!=n;++n){
cout << "-";
}
cout << "+" << endl;
}
else{
cout << "Length must be between 0 and 64 inclusive, or enter -1 to exit.";
}
do {
cout << "|";
do {
//cout << " ";
//++m;
//}while (x-2!=m);
cout << "|" << endl;
++o;
}
while (x-2!=o);
++z;
}
while (z!=5);
}
注释掉的部分是程序陷入困境的地方,似乎当我递增 m 直到它退出 do while 循环时,它会保持递增到的值。我知道 continue 语句会从循环中中断并开始新的循环迭代,但它似乎不想放入 do-while 循环中,即使我创建了一个 if 语句,例如
if (x-2==m){
continue;
}
如有任何帮助,我们将不胜感激
只需在循环之前放置 m = 0;
。
m = 0;
do {
cout << ' ';
++m;
} while (x-2 != m);
或改用 for
循环;
for (int m = 0; m != x-2; m++) {
cout << ' ';
}
这是将某事重复一定次数的更常见的习惯用法,因为您可以在一个地方看到与循环相关的所有条件。
所以我正在制作一个程序,该程序将根据用户所需的大小创建一个正方形。到目前为止,我的代码读取值,打印出正方形的顶部,但由于我创建了嵌套循环,我正在了解如何设置边。这里的问题是我需要循环在每次存在时重置它的值。
到目前为止,这是我的代码:
#include <iostream>
using namespace std;
int main(int,char**) {
int x;
int z=1;
int l=0;
int n=0;
int q=1;
int m=0;
int o=0;
do{
cout << "Enter length between 0 and 64 (-1 to exit): ";
cin >> x;
if (x>-1&&x<64){
cout << "+";
for (;x-2!=n;++n){
cout << "-";
}
cout << "+" << endl;
}
else{
cout << "Length must be between 0 and 64 inclusive, or enter -1 to exit.";
}
do {
cout << "|";
do {
//cout << " ";
//++m;
//}while (x-2!=m);
cout << "|" << endl;
++o;
}
while (x-2!=o);
++z;
}
while (z!=5);
}
注释掉的部分是程序陷入困境的地方,似乎当我递增 m 直到它退出 do while 循环时,它会保持递增到的值。我知道 continue 语句会从循环中中断并开始新的循环迭代,但它似乎不想放入 do-while 循环中,即使我创建了一个 if 语句,例如
if (x-2==m){
continue;
}
如有任何帮助,我们将不胜感激
只需在循环之前放置 m = 0;
。
m = 0;
do {
cout << ' ';
++m;
} while (x-2 != m);
或改用 for
循环;
for (int m = 0; m != x-2; m++) {
cout << ' ';
}
这是将某事重复一定次数的更常见的习惯用法,因为您可以在一个地方看到与循环相关的所有条件。