java - 解释 if (++value % 2 == 0 &&++count < limit) in java

标签 java operator-precedence

public class AndOperator {

    public static void main(String[] arg) {
        int value = 8;
        int count = 10;
        int limit = 11;

        if (++value % 2 == 0 && ++count < limit) {
            System.out.println("here");
            System.out.println(value);
            System.out.println(count);
        } else{
            System.out.println("there");
            System.out.println(value);
            System.out.println(count);
        }
    }
}

我得到输出为

there
9
10

请解释 count 是 10....?

最佳答案

&&short-circuit operator .如果第一个表达式的计算结果为真,它只会计算第二个表达式。

由于 ++value % 2 == 0 为假,因此它不会计算第二个表达式,因此不会增加 count

关于java - 解释 if (++value % 2 == 0 &&++count < limit) in java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18599757/

相关文章:

java - 当赋值运算符的优先级最低时,y=x++ 和 y=x-- 有何不同?

java - Tapestry 的 UTF-8 编码问题

c - 递增计数器时未使用表达式结果

java - 为什么 Java 中的后缀运算符从右到左求值?

c - 为什么这些构造使用增量前和增量后未定义的行为?

java - 部署 jar 文件并包含外部库

java - log4J2 存储和使用变量/查找值

java - 如何更改 BottomNavigationView 中特定项目的 iconTint

java - 跳过重新渲染的验证并仅在表单提交时应用

function - 运算符的 Haskell 类型优先级高于函数