小编use*_*609的帖子

Java布尔表达式行为

这是我在这里发表的第一篇文章,请原谅任何协议错误.

我的问题只是试图通过以下Java代码了解正在发生的事情.我完全理解括号的使用会澄清一切,但结果输出似乎是在面对有关Java操作顺序的约定时出现的.

public class Tester
{
   public static void main(String[] args)
   {
    int total=9, num=13;
    if (total>4 || ++num>15 && total>0)
    {
           System.out.println("short");
    }
    System.out.println(num);
   }
}
Run Code Online (Sandbox Code Playgroud)

输出为:短13

显然++ num没有执行.如果观察到严格的操作顺序,它应该是第一件事.它没有.接下来就是&&.如果&&按优先顺序超过||完成,则相同的...... ++ num应首先发生.它没有.所以,对我而言,似乎输出是用||确定的 首先执行,接++ num,然后使用&&,导致打印.操作规则的顺序是否被忽略,布尔表达式是从左到右执行的?增量运算符是否导致不规则行为?

感谢您对此代码实际发生的任何见解.

java boolean

5
推荐指数
1
解决办法
1244
查看次数

标签 统计

boolean ×1

java ×1