多个条件 'for' 循环下

multiple conditions Under the 'for' loop

为什么下面标准 for 循环中的条件 Boolean 没有按预期运行? 我试图在下面的数组中获取 3 和 4,索引 2 和 3 以打印出来。如果我尝试 要在 for 循环的条件中指定范围,它不会 运行 循环。 在 if 条件下测试条件(参见第二个列表)

为什么它不能只在 for 循环中工作?

int[]weather = {1,2,3,4,5,6,7};
for(int i=0;i>1&&i<4; i++ ) {
    //if(i>1&&i<4) {
        System.out.println("Weather is ===> "+weather[i]);
    //}
}

nothing printed...

int[]weather = {1,2,3,4,5,6,7};
for(int i=0;i<10; i++ ) {
    if(i>1&&i<4) {
        System.out.println("Weather is ===> "+weather[i]);
    }
}

Weather is ===> 3
Weather is ===> 4
for(int i=0;i>1&&i<4; i++ ) {
            ^------^ expression

for循环执行直到表达式为假,然后停止执行。这个表达式立即为假(因为 0>1 为假),所以它立即停止执行。如果表达式再次变为真,它不会“等着看”。

如果你只想循环执行 i>1&&i<4:

for(int i = 2; i<4; i++ ) {

很简单,你初始化后没有通过条件。一开始 i 设置为 0。循环一直持续到 i 在 1 和 4 之间(均已排除),因此您永远不会开始循环。

for (int i = 0; i > 1 && i < 4; i++) {
    // You never goes here because i is 0 so not > than 1
    ...
}

相反,如果您将条件放在循环中,您将绕过执行所有迭代,并且对于其中一些迭代,您将进入 if 条件。

for(int i=0;i>1&&i<4; i++ ) 不起作用,因为 i=0 并且它不满足循环中的条件,因此程序永远不会进入循环。

这通常用于在不需要时跳过循环。