Java Puzzlers 之Puzzle 4: It's Elementary
来源:互联网 发布:seo网络营销推广 编辑:程序博客网 时间:2024/05/14 09:02
Puzzle 4: It's Elementary
好,上一个难题有点狡猾,但是它是关于除法的。每个人都知道除法很麻烦。现在这个程序仅仅关于加法。那么它输出的结果是什么呢?
public class Elementary {
public static void main(String[] args) {
System.out.println(12345 + 5432l );
}
}
Solution 4 It’s elementary
第一眼看到它,它看起来是个很容易的难题—容易的你根本不用铅笔或者纸。运算符左边的数从1增加到5,右边的数从5减小到1。因此,相应的数字之和不变,程序的输出结果一定是66666。分析这个难题只有一个问题:当你运行程序,它输出17777。难道java程序很讨厌这样一组数字?不知为何这并不是个似是而非的解释。
事情很少与被看到的一致。就拿这个程序来说。它并不是你所想象的那样。仔细查看运算符+的两边。我们用int型12345加上一个long型的数
在你大声喊冤之前,请注意这个问题确实引起实在的混淆。同时注意到这个难题的标题就包含了一个按时:它是El-ementary;看到了吗?最后,注意这是个真实的教训。记住一定要使用大写字母el(L)来表示long型数字,而不是使用小写字母el(l)。这才能正在消除这个难题的混淆依赖的根源:
System.out.println(12345 + 5432L );
同样的,尽量避免使用单独的小写字母el(l)来表示一个变量。很难在程序代码中来区分是list l还是数字1。
// Bad code - uses el (l) as a variable name
List<String> l = new ArrayList<String>();
l.add("Foo");
System.out.println(1);
总而言之,小写字母el和数字1在印刷体中很难以区分。为了不使你的程序阅读者产生混淆,请不要使用小写字母el在结尾来表示long型数字或者作为变量名。Java继承了很多C语言的东西,包括long型的语法。允许使用小写字母el来表示long型或许就是它的一个错误。
- Java Puzzlers 之Puzzle 4: It's Elementary
- Puzzle 4: It's Elementary L与1的问题
- Java Puzzlers 之Puzzle 1: Oddity
- Java Puzzlers 之Puzzle 3: Long Division
- Java Puzzlers 之Puzzle 2: Time for a Change
- 谜题4:It's Elementary 初级问题
- Java Puzzlers笔记--puzzle 20: What's my Class? String.replaceAll()的使用
- Java Puzzlers笔记--puzzle 21: What's my Class, take 2 路径字符问题
- Java Puzzlers(4)异常之谜
- Java Puzzlers笔记--Puzzle 1: Oddity奇偶问题
- Java Puzzlers笔记--Puzzle 3: Long Division 溢出问题
- Java Puzzlers笔记--puzzle 6: Multicast 类型转换
- Java Puzzlers笔记--puzzle 7: Swap Meat ^符号问题
- Java Puzzlers笔记--puzzle 9: Tweedledum +=的问题
- Java Puzzlers笔记--puzzle 10: Tweedledee += 问题(2)
- Java Puzzlers笔记--puzzle 14: Escape Rout (")双引号的问题
- Java Puzzlers笔记--puzzle 17: Huh? 转义字符问题
- Java Puzzlers笔记--puzzle 19: Classy Fire 注释问题
- WinXP SP2上安装IIS出现“安装程序无法复制文件”无法安装IIS
- 深入浅出自定义标签(一)入门
- 如此幸福
- 学单词了
- Xajax中文手册(第一版)
- Java Puzzlers 之Puzzle 4: It's Elementary
- 一个网站程序员的自白~~
- 今天下午实验所想
- 白盒测试终结无间
- 应用程序框架设计(2):SW系统的窗口类
- .NET中ora-01036错误分析与解决
- 一道确实很多人做错的智力题
- 日本人的Ruby
- lucene在语料库建设中的应用