活死题 3 道歉?

“不要走!!!告诉我,我究竟做错了什么?我改还不行吗!”
。。。 。。。
问题:我究竟做错了什么,怎么改?

public static void main(String[] args) {
    	  byte number = 1;
    	  byte answer = number + 1;
    	  System.out.println("答案是: " + answer);  
      }

解题思路:
没错啊!不就是 1 + 1 = 2 吗!?
输出的结果:答案是:2.
这小学生都会 O.O
不过,,,

答:
写错字,用错语法不可怕。想当年。。。
进入正题,总共只有三条语句,一句一句分析:
byte number = 1;
声明变量number,以及初始化赋值为1,没有错。
再看第二句:
byte answer = number + 1;
同上变量answer声明没错,number是同类型(byte)没错,但是与 1 进行加法运算后的类型又是什么?
是的,number + 1 运算后的类型是int类型(也是java整数默认类型)。
int类型的取值范围比byte类型的取值范围大,也就是说,为了安全起见,小杯子不能装大杯子的水,即使能也不行(老娘说不能就不能,没得解释!)。
这还等什么,调Bug.

强制把大杯子的水倒入小杯子,代价是:溢出。不过小杯子能装的下更好(要事先计算好,不能掷骰子决定,要是溢出的是钱,就哭了)。
在这里插入图片描述
啊呜呜,,,第三关通过,第四关Come on.

发布了5 篇原创文章 · 获赞 3 · 访问量 245

猜你喜欢

转载自blog.csdn.net/qq_40924992/article/details/105030517