- Java code
int ohMyGod = 1+ +2+3; System.out.println(ohMyGod);
竟然可以得出正确的结果:6
1+ +2+3是什么写法啊?
------解决方案--------------------
1+ +2 意思是1加上 正2
lz可以试试1+ -1 打印一下是零
------解决方案--------------------
- Java code
int ohMyGod = 1+ - + - + +2; System.out.println(ohMyGod);
------解决方案--------------------
我在说详细点,比如,操作数op1,op2,先压栈op1,在压栈+,然后找到空格,空格不是数字,所以找到+,+也不是数字,把原来的运算符压出,把当前运算符压入,如此,找到2,可以执行一次运算,结果是3。真正的运行比这个复杂的多,还要判断括弧,优先级等。
你看你用window自带的计算器也是这么整的,按下1,在按+,-,*,/乱按都没关系,最后按个数字还是能出结果。
------解决方案--------------------
1+ +2+3 = 1 + 2 + 3
------解决方案--------------------
int ohMyGod = 1+(+2)+3;这样写你该知道了吧
------解决方案--------------------
------解决方案--------------------
乱写Java是不能识别的,Java编译器不是计算器,不会做忽略上一个运算符这种事情:
比如:
int i=0;
i=i+++++i; // 出错
i=i++ + ++i; // 正确