1

我期待下面的循环逻辑在打印 42 之前将 cookie 带到 504。程序将运行但没有返回任何内容。

public static void main(String[] args) {                
    int cookies = 500;
    while(cookies % 12 != 0) {
        if (cookies % 12 == 0) {
            System.out.println(cookies/12);
        }           
        cookies++;
    } 
}

谢谢!

4

2 回答 2

0

您可以将其切换为 do/while 以使其工作。它将首先检查 if 语句,增加变量,然后检查条件。

于 2022-02-16T09:07:47.247 回答
0

条件 'cookies % 12 == 0' 总是 'false' !

所以它从不打印任何东西!

此代码将打印出来42

        int cookies = 500;
        while (cookies % 12 != 0) {
            cookies++;
            if (cookies % 12 == 0) {
                System.out.println(cookies/12);
            }
        }

原因:如果你把 thecookies++放在最后,那么无论何时cookies % 12 == 0,它都会立即中断while循环,所以它不会打印任何东西。

于 2022-02-17T10:10:38.320 回答