针对小白的一些教程,当然大佬们也可以看看提提简易
一定是有些帮助的
别犹豫,快速告诉我下面的输出结果是什么
我想大部分人都能够得出答案输出的y=1.5,如果不是的可以好好反思自己在学什么了
针对这里呢,我相信大家肯定都知道,乘除的优先级高于加减,所以先算了x*x再处于2最后再加x,针对这样的运算确实没什么问题,那么接下来的你还可以这么算吗
难度增加
请大家不要犹豫,告诉我你的答案
我觉得应该有不少的小伙伴的出来的答案不是 4 吧 这里面呢,涉及到了自增和自减,又同时涉及到了乘除加减,所以可能会有不少的小伙伴会做错 你们可能回想,欸,为什么不是7呢或者其他数呢,这里要知道 x++和++x的区别 ,x++是返回的是表达式运算之前的值,也就是x=1时,x++返回的是1而不是2,但是此时x确实已经为2了,所以说,x++返回的是表达式运算之前的值,而++x呢正好相反,++x则是先进行+1然后再返回值,所以这两者还是有区别的,但是他们相同的是,最后都会为x+上1,只不过一个是再运算前,一个再运算后 所以算出来是 y=1+1*3 结果为4
你以为到这里就结束了吗?不不不,接下来难度升级,再看一道
请大家一样不要犹豫,说出你的结果
答案是** 25**你答对了吗? 相信不少人看到这都比较懵(大佬除外),说博主你这是上面玩意啊,哪有人会这么出题的.....不不不,平常开发确实不会遇到这么恶心下头的东西,但是某些人他不是人啊,呸呸呸,我啥也没说,我们来看这道题
注意这里,这里面出现了太多的自增了还涉及到了加减和乘除,但是大家基本的运算优先级不要忘了,自增的优先级是要大于乘除的,乘除的优先级又大于加减,但是注意,不要直接先算自增或者乘除如果你一眼望去就看到了 x++ * ++x从这里入手的话,那么你一定会算错的。
这里给大家一个口诀
- 从左到右依次查看
- 如果遇到操作数,将数据的值直接取出
- 如果遇到相邻的两个运算符,并且左边的运算符优先级大于等于右边的运算符,则直接运行左边的运算符。
对应到这里呢,就是先从左往右看 x++的优先级大于+法,所以先进行x++的运算,x++=1,此时x为2 2+ ++x + x++ * ++x + ++x,然后重新从左往右看,+号遇到了++运算,+号的优先级小于++,所以继续往后看,当++遇到 号是,++的运算高于 号,所以这时候运算++x =3 此时x为3,// 1 + 3 + x++ * ++x + ++x,
随后重新开始从左往右看,1+3+ 此时两个加号相遇,运算及平级,所以可以直接运算1+3 此时变成// 4+ x++* ++x + ++x
再重新从左往右看,+遇到了 ++,继续往后看,++遇到了,++优先级大于*,此时先算x++ =3 此时x为4,变为 4+3*++x + ++x,
再重新从左往右看,4+3 遇到了++,继续往后看,++遇到了+,先算++x=5 此时x=5,变为4+3 5+ ++x,再重新从左往右看,当号遇到+号时优先级较高,所以先算了35=15,此时4+15+ ++x,
再重新从左往右看+号遇到+号运算4+15=19,最后+遇到了++,再往后没有了,所以此时先算++x=6 此时 x=6 ,自此变为19+6=25至此运算结束,返回25
怎么样你明白了吗 接下来给大家出道题,难度比上一个还要高一点,大家可以尝试一下,把你们的答案放在评论区,可以根据上面的运算口诀得出正确结果
大家挑战一下吧,大佬也可以来挑战一下哦,不一定大佬能做出来
关注我,带小白了解更多前端基础问题和一些好看又好玩的样式,我是如意,一个致力于python+前端方向的大三在校学生,欢迎大家关注和大佬指点