首页 > 解决方案 > C++ 问题:嵌套 for 循环中的“中断”不能按预期工作?

问题描述

我正在尝试编写一个程序来查找具有以下条件的特定 4 位数字:

我正在努力编写这个程序。我尝试嵌套 for 循环迭代每个数字,直到满足条件(当 break 终止循环时),如下所示:

int a = 1;
int b = 1;
int c = 1;
int d = 1;

for (a = 1; a < 9; a++) {
    for (b = 1; b < 9; b++) {
        for (c = 1; c < 9; c++) {
            for (d = 1; d < 9; d++) {

                if (a + b + c + d == 27 && a == 3 * c && a != b && a != c
                && a != d && b!= c && b != d && c != d && d % 2 != 0) {
                    break;
                }
            }
        }
    }
}

我希望数字 a、b、c、d 为我提供满足上述 if 语句中的所有条件并因此中断的数字。相反,abcd 始终为 9999。为什么会发生这种情况?我如何滥用休息?

标签: c++

解决方案


break只会跳出最里面的循环。因此,当您达到您的条件时,您只需进入该c值的下一次迭代。


推荐阅读