【发布时间】:2017-10-26 03:20:57
【问题描述】:
所以我正在制作一个程序,该程序将根据用户所需的大小创建一个正方形。到目前为止,我的代码读取了该值,打印出正方形的顶部,但由于我创建了一个嵌套循环,我正忙于如何设置边。这里的问题是我需要循环在每次存在时重置它的值。
到目前为止,这是我的代码:
#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 语句从循环中中断并开始循环的新迭代,但即使我创建了一个 if 语句,例如
if (x-2==m){
continue;
}
任何帮助将不胜感激
【问题讨论】:
-
while (z=1);肯定是错的。 -
这部分:
(x>-1||x<64)已损坏,因为“||”表示 OR,因此我可以选择大于 -1 (2000) 或小于 64 (-2000) 的数字。您必须输入“&&”才能使其成为 AND。您可以在此处阅读有关 C 和 C++ 中运算符的更多信息:en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B -
@PaulRooney 我需要程序运行 5 次,所以我修复了循环功能。感谢您的捕获,否则它将永远循环运行。
-
@RandomProgrammer 感谢您的提醒,我错误地将 or 替换为 and
-
这些行被注释掉了,你的大括号就不平衡了。发布您遇到问题的代码,而不是修改后的版本。
标签: c++ loops if-statement nested-loops do-while