嵌套循环 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 << ' ';
}

这是将某事重复一定次数的更常见的习惯用法,因为您可以在一个地方看到与循环相关的所有条件。