java中逻辑与&& 的短路原则。

public class Test
{
    public static void main(String[] args)
    {
        int x = 0;
        int y = 0;
        int k = 0;
        for (int z = 0; z < 5; z++) {
            if ((++x > 2) && (++y > 2) && (k++ > 2))
            {
                x++;
                ++y;
                k++;
            }
        }
        System.out.println(x + ”” +y + ”” +k);
    }
}

看到如上一道java题,掉在 && 的坑里了,原来 && 有个短路原则,一旦前面判断为 false ,后面的判断便不执行了。
所以:

  • z=0 : x=1, y=0, k=0;
  • z=1 : x=2, y=0 ,k=0
  • z=2: x=3, y=1, k=0
  • z=3: x=4, y=2, k=0
  • z=4: x=5, y=3, k=1
    循环完了,仍是false .输出结果为:5 3 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值