这些数是怎么计算的?
- Java code
int a = 3; a += a -= a * a; System.out.println(a); // 输出-3 int b = 10; b = b++; System.out.println(b); // 输出10 int c = 5; c += c++ + (c++ + 0); System.out.println(c); // 输出16 int d = 3; d = (d++) + (d++) + (d++); System.out.println(d); // 输出12
这些数是怎么计算的?结果值好神奇。。。。
[解决办法]
真恶心
[解决办法]
无聊的题
就跟问你爸爸的姐姐的妈妈的孙子是谁一样
[解决办法]
查编译过后的字节码
[解决办法]
I、3+(3-3*3)= -3
II、b++是先赋值后++的
III、先做括号里的(C++ + 0)=5,这时C=6了,所以右侧 = 11,将左侧的5 + 11得到16
IV、d++是先运算后加,所有右侧式=3+4+5=12
[解决办法]
int a = 3;
a += a -= a * a;
System.out.println(a); // 输出-3
运算符的优先级及计算规则了解的话很简单
a=a+(a-(a*a));最后a就是3
int b = 10;
b = b++;
System.out.println(b); // 输出10
后置++是先计算后++所以 b=b++;实际等同于b=b;还是10
int c = 5;
c += c++ + (c++ + 0);
System.out.println(c); // 输出16
有括号先计算括号 c先+0然后对c进行+1 即 c+=6+5 最后等于16
int d = 3;
d = (d++) + (d++) + (d++);
System.out.println(d); // 输出12
第一步计算第一个括号里的d++结果是3对d+1 d=4,计算第二个括号里的d++结果是4再对d+1 d=5,计算第三个括号结果是5 3+4+5 = 12
[解决办法]
这些是程序语言基础的运算符优先级问题,请楼主学习一下+-*/和++等的优先级,就明白了
[解决办法]
都是从右到左
int a = 3;
a += a -= a * a;
----------------------
1:a*a=6
2:a -= a*a就等于a = a- a*a;所以a=-6
3:a += (**);就等于a = a+(**)
4:所以a += -6=>a=a-6=3
===================================
int b = 10;
b = b++;
这个在Java中,是b先赋值后自加,所以左边的b还是10
打印b是打印左边的b,C++就是打印右边的b
=========================================
int c = 5;
c += c++ + (c++ + 0);
这个不是很懂啊
它等于int b = c+ c++ +(c++ +0)
[解决办法]
一题
- Java code
int a = 3;a += a -= a * a;//先计算a*a=9;-->再计算3-9=-6-->再计算a=3+(-6)=-3System.out.println(a);
[解决办法]
- Java code
int a = 3; a += a -= a * a;// 先算 a*a; 然后 a += a; 最后(a+=a) -= (a*a) System.out.println(a); // 输出-3 int b = 10; b = b++; System.out.println(b); // 输出10 // 等价 b = b; System.out.println(b); b++; int c = 5; c += c++ + (c++ + 0); System.out.println(c); // 输出16 //先 (C++ + 0),就这个c=6,其他两个都是5 int d = 3; d = (d++) + (d++) + (d++); //d = 3 + 4 + 5;; d++先使用d,在使d增加1 System.out.println(d); // 输出12
[解决办法]
------解决方案--------------------
研究后我这里说下我对b++的理解
b++ 可以看成一个函数 {temp = b,b += 1, return temp}
也就是说 b = 10, c = b++ 的话, 最后 b=11, c=10
可是 b = b++ , b++ 之后 b=11,但是返回值是temp,也就是10,这个时候等于 b = temp
也就是 b =10
[解决办法]
如果我是领导,有谁写出这样的代码,我会立马让他回家!