几周前我刚刚开始学习C ++,所以我远非专家。我有一个小项目,几个小时到期,我遇到了一个问题。我尝试在while循环中嵌套两个if语句,但它似乎只运行第一个并完全忽略第二个。这是代码:
while (x <= rows * columns) {
cout << "*";
x++;
if (x % intervals == 0) {
cout << "?";
x++;
}
if (x % columns == 0) {
cout << "\n";
}
}
cout <<"\nDONE!!!";
它不会运行第二个if语句,因此我无法获得任何换行符(行)。
答案 0 :(得分:1)
没有理由在while循环中不能有两个或更多if语句。
没有上下文,很难说出现了什么问题。但是,当您在其中一个IF语句中运行x ++时,可能会导致循环在您达到“列”条件之前退出,因为您可能会跳过可被列整除的“X”值(以x%列表示)
请提供一些背景信息
答案 1 :(得分:0)
这样做怎么样:
我只是将x++
行分解。
while (x <= rows * columns) {
cout << "*";
if (x % intervals == 0) {
cout << "?";
}
if (x % columns == 0) {
cout << "\n";
}
x++;
}
cout <<"\nDONE!!!";
答案 2 :(得分:0)
如果列是间隔的倍数,则第二个语句永远不会计算为true。
答案 3 :(得分:0)
发现我的问题。它跳过它的原因是因为我运行的试验是一个奇数,而x被初始化为1.所以第一个if语句中的第二个x ++是让x跳过那个奇数。因此,x%列永远不会导致0.我修复了它。不管怎样,谢谢你们。