读TIJ -3 控制程序流程

《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 istreated 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 执行控制

if-else, while, do-while,  switch.我有个疑问,为什么清华大学出版社要把if-else改成if…else,难道我的小学语言是体育老师教的?,我好不习惯if…else if…else。

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 控制程序流程

时间: 2024-10-22 09:50:24

读TIJ -3 控制程序流程的相关文章

4.JAVA编程思想——控制程序流程

欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/51040228 控制程序流程 在Java 里,我们利用运算符操纵对象和数据,并用执行控制语句作出选择.Java 是建立在C++基础上的,所以对C 和C++程序员来说,对Java 这方面的大多数语句和运算符都应是非常熟悉的.当然,Java 也进行了自己的一些改进与简化工作. 1      使用 Java 运算符 加号(+).减号和负号(-).乘号(*).除号(/)以及等号(=)的

读TIJ -1 对象入门

<Thinking In Java·第 1 章对象入门> 第 1 章约20页,是对面向对象的程序设计(OOP)的一个综述.按照其前言所述:"其中包括对"什么是对象"之类的基本问题的回答,并讲述了接口与实现.抽象与封装.消息与函数.继承与合成以及非常重要的多形性的概念.这一章会向大家提出一些对象创建的基本问题,比如构建器.对象存在于何处.创建好后把它们置于什么地方以及魔术般的垃圾收集器(能够清除不再需要的对象).要介绍的另一些问题还包括通过违例实现的错误控制机制.反

控制程序流程

我叫鱼汤,是一名菜鸡.如有高手路过,望指点.望传功. 这一篇是要整理我的三份笔记,主要内容就是java里几个简单的控制程序流程的方法,程序自然执行顺序是由上而下依次执行,但是有时这样达不到我们想要的目的,这里就会用到流程控制的方法. 一.选择 1. 单分支if语句 if(布尔表达式){ //布尔表达式为true时所执行的语句: } 如果()里的条件得到满足,{}里的语句才回执行,主要用于只有一个筛选要求. 2. 双分支if语句 if(布尔表达式) { //布尔表达式为true时所执行的语句: }

读TIJ -7 多形性

<Think in java·第 7 章  多形性> [面向对象的程序设计语言三种最基本的特征:数据抽象.继承和多态] 在这个层面是没有什么"思想"好谈的!当你按照人们熟悉的.习惯的思维方式,去思考"构造和组织"程序时,你可能会觉得很自然--你具有面向对象的思想:或者,有人X按照人们熟悉的.习惯的(人的而非机器的)思维方式,给你介绍.解释数据抽象.继承和多态时,你觉得贴近生活和人的思考习惯.你觉得他讲的概念理所当然.自然(当然也浅显易懂),这是X在&qu

重新开始学习javase_控制程序流程

@学习thinking in java 二.控制程序流程 负数使用 Java 运算符:运算符以一个或多个自变量为基础,可生成一个新值.自变量采用与原始方法调用不同的一种形式,但效果是相同的.根据以前写程序的经验,运算符的常规概念应该不难理解.加号(+).减号和负号(-).乘号(*).除号(/)以及等号(=)的用法与其他所有编程语言都是类似的.所有运算符都能根据自己的运算对象生成一个值.除此以外,一个运算符可改变运算对象的值,这叫作“副作用”(Side Effect).运算符最常见的用途就是修改自

读TIJ -4 初始化和清除

<Think in java·第 4 章初始化和清除> 本章介绍对象的创建和消除. 4.1 用构建器自动初始化 [You can imagine creating a method called initialize( ) for every class you write.]一句话的正确解读是,你(男生)将自己想象成为女生.所以,我专门用一节 < 编程导论(Java)·2.3.6 构造器不是方法>强调这一点. 4.2 方法过载 这一段解释非常经典,按照人们的日常生活介绍重载.同时

读TIJ -5 隐藏实施过程

<Think in java·第 5 章隐藏实施过程> 从第一句话,就感觉本章会令我不满意."将发生变化的东西与保持不变的东西分隔开"与封装一毛钱的关系都没有.封装变化又称OCP,与OOP的封装性无关. 关于库(中的类A)的设计,依赖库的程序B,要求库是向下兼容的.程序B依赖的是A的接口.库的创建者不管想怎样自由地进行修改与改进,前提是不修改A的接口. 这里,A的接口,表示A需要提供的服务,设计者不可能.也不会考虑该服务(的方法名.参数)未来是否保持不变或改变. 所以,JD

读TIJ -6 类再生

<Think in java·第 6 章类再生> 读TIJ -1 对象入门 中已经就代码复用性吐槽了.继承关系在结果上(不是为了代码复用而设计继承关系)为代码复用提供了新的途径. 本章看其目录就比较杂,程序员的内聚思想去哪儿了?合成复用优先--合成.继承,为什么实现继承是不好的-- 6.1 合成的语法 解释了一个例程,没有什么好说的.has_a关系. 6.2 继承的语法 [You can think of inheritance, then, as reusing the class.]Is_

控制程序流程(2)

3.2 执行控制   Java使用了C的全部控制语句,所以假期您以前用C或C++编程,其中大多数都应是非常熟悉的.大多数程序化的编程语言都提供了某种形式的控制语句,这在语言间通常是共通的.在Java里,涉及的关键字包括if-else.while.do-while.for以及一个名为switch的选择语句.然而,Java并不支持非常有害的goto(它仍是解决某些特殊问题的权宜之计).仍然可以进行象goto那样的跳转,但比典型的goto要局限多了. 3.2.1 真和假 所有条件语句都利用条件表达式的