这是我在这里发表的第一篇文章,请原谅任何协议错误.
我的问题只是试图通过以下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,然后使用&&,导致短打印.操作规则的顺序是否被忽略,布尔表达式是从左到右执行的?增量运算符是否导致不规则行为?
感谢您对此代码实际发生的任何见解.