读TIJ -3 控制程序流程
来源:互联网 发布:node并发 编辑:程序博客网 时间:2024/06/01 18:25
《Think in java·第 3 章控制程序流程》
这一章应该不会涉及“思想”,我在《编程导论(Java)·0.2.2 操作符和操作数》后,将相关内容压缩成一节《第3章功能抽象·3.2实现》。
3.1 使用Java 运算符
副作用(side effect):【p98:副作用一般是针对操作(表达式)而言的,一个操作/表达式有“副作用”是指在对该表达式求值时,会改变程序的一个或多个数据,以致再次对该表达式求值时,可能会得出不同的结果。事实上,Java的4种表达式语句如赋值、自增自减、方法调用、对象创建都可能带来副作用。这里讨论方法的副作用。……】
3.1.1 优先级 他非常简洁的提及。
3.1.2 赋值 【由于这并非一个简单的话题,所以留待第12 章详细论述,那一章是专门讨论别名的。】“别名”似乎是一个非常简单的问题——两个引用变量保存的值(即引用)相同,需要专门一章?拭目以待吧。
“左边的值”,这样的翻译。等号的“左值”
3.1.3 算术运算符 这里面插入正则表达式?
3.1.4 自动递增和递减 【p105 当x++,++x作为更大的表达式的一部分时,假定x为2,则x++表达式的值为2,++x表达式的值为3。】很容易理解的。
3.1.5 关系运算符 【The relational operators == and != also work with all objects, but their meaning often confuses the first-time Java programmer. 】本来很简单的,被作者自己搞得找不到北。== and != 不管对基本类型还是引用类型的变量,判断其值是否相等。【两个引用相等说明它们指向同一个对象。一般地,(new A() == new A())总等于false,因为创建的两个对象分别有自己的引用。】
例程中使用没有改写的Object.equals()方法?自讨苦吃。
3.1.6 逻辑运算符
3.1.7 按位运算符 我把位运算单独地放在《第12章 位运算》,位运算在汇编语言中被广泛使用,为什么说C语言?【The boolean type is treated as a one-bit value, so it is somewhat different. 】Java语言从来不这样看boolean。&,|和^是重载的操作符。Java “logical” operators有6个,baby。
3.1.8 移位运算符 移位运算的例子中,最好使用0x8000_0000这种Java7添加的表达方式。
3.1.9 三元if-else 运算符 我把它放在《3.2.3 if语句》中。
3.1.10 逗号运算符 在Java 里需要用到逗号的唯一场所就是for 循环
3.1.11 字串运算符+ Although operator overloading would have been much simpler to implement in Java than it was in C++, this feature was still considered too complex
3.1.12 运算符常规操作规则 Common pitfalls when using operators:为什么提括号?
3.1.13 造型运算符
Literals 为什么在这里讲文字?‘e’ refers to the base of natural logarithms,为什么e不能够是exp的缩写?
3.1.14 Java 没有“sizeof” 多余
3.1.15 复习计算顺序 用一句话来帮助记忆,可以考虑一下
3.1.16 运算符总结 一个烂例程用了8页!
3.2 执行控制
3.2.1 真和假
3.2.2 if-else
3.2.3 反复/Iteration 翻译肯定不是搞计算机的。迭代
3.2.4 do-while 【Traditional procedural languages like C require that all variables be defined at the beginning of a block so that ...】事实上,C11也不需要在块开头定义所有变量了。1. 逗号运算符,说成分隔符,问题不大。Java中完全可以把它视为“;”的临时替代品。
3.2.6 中断和继续
1. 臭名昭著的“goto” 【对Java 来说,唯一用到标签的地方是在循环语句之前。】不对。语法上,标签可以为任何一个语句(除了声明语句)添加标识。
Case:if(level==10){ pln("极好"); break Case; } Case:if(level==9) { pln("极好"); break Case; } Case:if(level==8){ pln("好"); break Case; } Case:if(level==7){ pln("好"); break Case; } Case:if(level==6){ pln("及格"); break Case; } if(level<6){ pln("不及格"); }你可以将上面的代码执行,或者改成标准的switch语句(注意:代码中Case不是case)。
3.2.7 switch
没有意思的一章。
- 读TIJ -3 控制程序流程
- 3、控制程序流程
- 第3章:控制程序流程
- 控制程序流程
- 控制程序流程
- 控制程序流程
- JAVA之第3章 控制程序流程
- JAVA之第3章 控制程序流程
- JAVA之第3章 控制程序流程
- 第3章 控制程序流程(1)
- Java控制程序流程总结
- 3.控制程序流程
- 第三章控制程序流程
- 第三章 控制程序流程
- 控制程序流程&初始化
- Java之控制程序流程
- 控制程序流程(Java)
- 控制程序流程(2)
- POJ1753:Flip Game
- 杨氏矩阵查找
- 利用反射自动生成SQL语句(仿Linq)
- mysqlbinlog -help
- 《Swift编程语言》中文翻译及读书笔记page22
- 读TIJ -3 控制程序流程
- 屏幕适配的一些个人经验
- ubuntu 下安装eclipse &java环境配置
- HDU 1016 Prime Ring Problem
- MysQL 日志分类
- Swift学习之闭包疑惑解析2
- 配置文件总结(机房重构知识点总结)
- 新郎难忘旧爱婚礼宣誓时现场逃婚 新娘宾客全傻眼
- Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.intWrapper(I)Lscala/runtime/Ri