本文共 1093 字,大约阅读时间需要 3 分钟。
int x,a=2,b=5,c=-2;
x=++a+b+++c++; x=多少?最开始我的思路是,没看清题目 瞎搞一通 ,所以答了11,后来仔细一想 应该是 7 因为 我的认知是 ++a 在计算时就自增,而
a++ 是计算后自增,那么答案应该是7才对int x, a = 2, b = 5, c = -2;
x = ++a+b+++c++; 那自然是 x = ++2+5+++(-2)++; x = 3+5 + (-1)++ x = 8 - 1 x = 7那么最后答案是 6 本来有点不信的,但是结果摆在那
我们再重新分析一遍
int x, a = 2, b = 5, c = -2; x = ++a+b+++c++; 那自然是 x = ++2+5+++(-2)++; x = 3+5 + (-2)++ x = 8 - 2 x = 6 发现坑在哪里了吗? 就像语文里面的断句, 断句不一样意思完全不一样 不管你同不同意,不如我们来开个车,,看下面的断句 老汉奸杀了我们所有人 不同的断句会有完全不同的解读,如下: ①老汉/奸杀了我们所有人 ②老汉奸/杀了我们所有人 回到代码里面,也是一样 int x, a = 2, b = 5, c = -2; x = ++a+b+++c++; 我之前为什么会算成 7 原因是我的“断句”有问题 我的错误断句 x = ++a+b+(++c)++; x= 3+5+(-1) 所以就等于 7 了 正确的断句应该是 x = ++a+(b++)+c++; x= 3+ 5 +(-2) x=6在java代码中 一定要注意“断句”,
如 b+++c++ 意思是 (b++)+c++ 而不是 b+(++c)++, 陷入死局,变得复杂,毫无意义 必须要按照java的思路在,在此基础上随你怎么创新 一定要注意坑,也是经验不足造成的,所以要多敲代码,多跟同学、朋友、同事交流 另外就是不要去钻牛角尖我知道你又写错了
公布一下答案,去看它的规律根据上面的题目,我们已经心中有一定的思路了
大胆猜一猜,再运行看看就知道了 i=2 k=1 s=2 错了 运行看看一定要运行一下看看自己的答案对不对
非常容易错!!!转载地址:http://aogxz.baihongyu.com/