首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

小弟我觉得小弟我弱爆了,看不懂这句代码,哪位高手能帮小弟我看下,多谢

2012-04-18 
我觉得我弱爆了,看不懂这句代码,谁能帮我看下,谢谢Java codeint ohMyGod 1+ +2+3System.out.println(oh

我觉得我弱爆了,看不懂这句代码,谁能帮我看下,谢谢

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;这样写你该知道了吧
[解决办法]
探讨

我在说详细点,比如,操作数op1,op2,先压栈op1,在压栈+,然后找到空格,空格不是数字,所以找到+,+也不是数字,把原来的运算符压出,把当前运算符压入,如此,找到2,可以执行一次运算,结果是3。真正的运行比这个复杂的多,还要判断括弧,优先级等。
你看你用window自带的计算器也是这么整的,按下1,在按+,-,*,/乱按都没关系,最后按个数字还是能出结果。

[解决办法]
乱写Java是不能识别的,Java编译器不是计算器,不会做忽略上一个运算符这种事情:

比如:
int i=0;
i=i+++++i; // 出错
i=i++ + ++i; // 正确

热点排行