在While循环中嵌入if语句?

时间:2015-04-06 02:22:51

标签: c++

几周前我刚刚开始学习C ++,所以我远非专家。我有一个小项目,几个小时到期,我遇到了一个问题。我尝试在while循环中嵌套两个if语句,但它似乎只运行第一个并完全忽略第二个。这是代码:

while (x <= rows * columns) {
    cout << "*";
    x++;
    if (x % intervals == 0) {
        cout << "?";
        x++;
    }
    if (x % columns == 0) {
        cout << "\n";
    }
}
cout <<"\nDONE!!!";

它不会运行第二个if语句,因此我无法获得任何换行符(行)。

4 个答案:

答案 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.我修复了它。不管怎样,谢谢你们。