为了账号安全,请及时绑定邮箱和手机立即绑定

num1++ % 4 + 6 * 2的运算结果不应该是13吗?

num1++ % 4 + 6 * 2的运算结果不应该是13吗?

墨色风雨 2018-08-11 09:10:19
var num1 = 24; var myresult = num1++ % 4 + 6 * 2; console.log(myresult);num1先求余数运算的结果是0,然后再自增1,就是1,再加12,结果应该是13啊?为何实际结果是12呢?num1%4的值是0,num1++%4的值不应该是1吗?要不然num1++有自增吗?
查看完整描述

1 回答

?
陪伴而非守候

TA贡献1757条经验 获得超8个赞

num1++是一个表达式,这个表达式的值是num1原来的值,所以这个表达式的值求余为0,于是num1++%4这个表达式的值就是0,0+6*2是12,所以这个算完后,myresult是12,num1是自增了1

并且不是整个表达式算完才自增,num1++算完就自增了,只是num1++这个表达式的值还是原来的值,用js演示一下,如果是像有人说的全部算完才计算的,那么下面的应该输出 0和12,但实际是1和12

        var num1=0;        function cheack(n){            console.log(n);            return 0;
        }        console.log(num1++ % 4 +cheack(num1)+ 6 * 2);


查看完整回答
反对 回复 2018-09-24
  • 1 回答
  • 0 关注
  • 556 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信