在While循环中嵌套if语句

Nesting if statements inside a While loop?

本文关键字:if 语句 嵌套 While 循环      更新时间:2023-10-16

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

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

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

没有理由不能在while循环中有两个或多个if语句。

没有上下文,很难说出了什么问题。

但是,当您在一个IF语句中运行x++时,您可能会导致循环在达到"列"条件之前退出,因为您可能会跳过可被列(以x%列表示)整除的"x"值

请提供一些上下文

这样做怎么样:我只是对x++行进行了因子分解。

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

如果列是间隔的倍数,则第二条语句的计算结果永远不会为true。

发现我的问题。它之所以跳过它,是因为我正在运行的试用版是一个奇数,并且x被初始化为1。所以第一个if语句中的第二个x++使x跳过那个奇数。因此,x%列从未产生0。不过我把它修好了。无论如何,谢谢你们。