Visual Studio正在跳过if语句
Visual Studio skipping if statements?
当我输出某个数字时,程序会输出某个模式。我还没有包括库、int main或提示符,但这是我遇到问题的代码部分。
例如,当我输入5时,我应该得到:
111111111
122222221
123333321
123444321
123454321
相反,我得到的是:
111111111
2222222
33333
444
5
我写了第一个if语句
if (lb2 < lb1){}
在它前面插入1和2,但它似乎被跳过了。有人能告诉我为什么吗?
int lb1, lb2, lb3;
cout << endl << "LETTER BOX:" << endl;
for (lb1 = 1; lb1 <= number; lb1++) {
cout << " ";
for (lb2 = 1; lb2 = (2*number)-1 ; lb2++){
lb3 = 1;
if (lb2 < lb1){
do {
cout << lb2;
lb3++;
} while (lb3 < lb1);
break;
}
else if (lb2 = lb1){
do {
cout << lb2;
lb3++;
} while (lb3 <= ((2*number)-1)-(2*(lb2-1)));
break;
}
else if (lb2 > lb1){
do {
cout << lb2;
lb3++;
} while (lb3 <= ((2*number)-1)-(2*(lb2-1)));
break;
}
}
cout << endl;
}
for (lb2 = 1; lb2 = (2*number)-1 ; lb2++){
条件语句使用=而不是<=它混淆了lb2 中的值
else if (lb2 = lb1){
同样,使用=而不是==可以更改lb2中的值,而不仅仅是检查它
此外,正如我从您的代码中了解到的,lb1循环控制行,而lb2循环控制行中的数字。但是,每个条件末尾的三个break语句会阻止lb2循环迭代(2*number)-1次。
另一件事是,三个do while循环不会增加lb2,这会导致行的数字超过(2*number)-1。
您的do{}while()控制一切,使for(lb2)循环和大多数if-else情况变得无用,这就是为什么它打印相同的东西,直到while循环中断。
另外,break语句会脱离循环,所以如果您知道要退出,就不要使用break。最后,在从=更改为==之后,您将不打印任何内容,因为lb2从1开始,所以1==9总是失败。将其更改为<=2*number-1就像第一个循环一样。
因此,逐步完成:对于第一行,lb1=1,lb2=1:if(lb2==lb1)case运行。if情况的while循环说:
do { cout << lb2; lb3++; } while (lb3 < 9); //lb2 is always 1
// break out of lb2 loop, now lb1 = 2
对于第2-5行:lb1=2(3,4,5….),lb2=1:如果总是选择(lb2>lb1)情况:
do { cout << lb2; lb3++ } while (lb3 < (9 - 2)); //lb2 is always 2
你应该先学习循环。http://www.codecademy.com这是一个很好的起点,但我认为他们没有c++。然而,其他语言也是一样的(Ruby、Java、Javascript)。这里有一个例子,试着照着做
// loop 1: for row from 1 to 5
for (lb1 = 1; lb1 <= number; lb1++) {
cout << " ";
lb3 = 1;
// loop 2: for column from 1 to 9
for (lb2 = 1; lb2 <= (2*number)-1 ; lb2++){
if (lb2 < lb1){
cout << lb3++;
}
else if (lb2 >= lb1 && lb2 <= 2*number - lb1){
cout << lb3;
}
else if (lb2 > number){
if (lb3 > 1) { lb3--; }
cout << lb3;
}
}
cout << endl;
}
- Insert函数不适用于2 if语句C++
- If语句未被求值C++
- C++嵌套if语句,基本货币交换
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- If语句在c++中被忽略
- 比较if语句中的数组值和int值
- 以在Qt中的IF语句中设置时间延迟
- Craps游戏问题,忽略if语句
- c++:定义if语句中的模板
- C++嵌套的 If 语句中,它无法按预期工作
- 如果条件不相关,我应该更喜欢两个 if 语句而不是 if-else 语句吗?
- 需要有关此 if 语句的帮助
- 转换器练习:跳过 if 语句和 if 语句
- 避免在 C++ 中的 if 语句中递增
- 如果仍然不满足要求,如何使 if 语句重复?
- do while 循环中的 if 语句以 yes 或 no 结尾
- 为什么在此C++代码中触发此 if 语句?
- 如何基于平台在制作文件中制作if语句?
- 在 if 语句中使用 GetKeyState 时,它会跳过条件
- C++ If 语句,从其他语句重复