JAVA编程思想学习 --- 第三章(控制程序流程)
来源:互联网 发布:清博大数据公司 怎么样 编辑:程序博客网 时间:2024/05/22 06:27
1.赋值
赋值是用等号运算符( =)进行的。它的意思是“取得右边的值,把它复制到左边”。右边的值可以是任何常 数、变量或者表达式,只要能产生一个值就行。但左边的值必须是一个明确的、已命名的变量。也就是说,它必须有一个物理性的空间来保存右边的值。举个例子来说,可将一个常数赋给一个变量( A=4;),但不可 将任何东西赋给一个常数(比如不能 4=A)。
对主数据类型的赋值是非常直接的。由于主类型容纳了实际的值,而且并非指向一个对象的句柄,所以在为 其赋值的时候,可将来自一个地方的内容复制到另一个地方。例如,假设为主类型使用“ A=B”,那么 B 处的 内容就复制到 A。若接着又修改了 A,那么 B 根本不会受这种修改的影响。作为一名程序员,这应成为自己的 常识。
但在为对象“赋值”的时候, 情况却发生了变化。对一个对象进行操作时,我们真正操作的是它的句柄。所 以倘若“从一个对象到另一个对象”赋值,实际就是将句柄从一个地方复制到另一个地方。这意味着假若为 对象使用“ C=D”,那么 C 和 D 最终都会指向最初只有 D 才指向的那个对象。
2.转型
大家会发现假若对主数据类型执行任何算术或按位运算,只要它们“比int 小”(即 char, byte 或者 short),那么在正式执行运算之前,那些值会自动转换成int。这样一来,最终生成的值就是 int 类型。所以只要把一个值赋回较小的类型,就必须使用“造型”。此外,由于是将值赋回给较小的类型,所以可能出 现信息丢失的情况)。通常,表达式中最大的数据类型是决定了表达式最终结果大小的那个类型。若将一个 float 值与一个 double 值相乘,结果就是 double;如将一个 int 和一个 long 值相加,则结果为 long。
3.执行控制
Java 使用了 C 的全部控制语句,所以假期您以前用 C 或 C++编程,其中大多数都应是非常熟悉的。大多数程 序化的编程语言都提供了某种形式的控制语句,这在语言间通常是共通的。在Java 里,涉及的关键字包括if-else、 while、do-while、 for 以及一个名为switch 的选择语句。然而, Java 并不支持非常有害的 goto (它仍是解决某些特殊问题的权宜之计)。仍然可以进行象goto 那样的跳转,但比典型的 goto 要局限多
了。
4.while与do-while的区别
while 和 do-while 唯一的区别就是 do-while 肯定会至少执行一次;也就是说,至少会将其中的语句“过一 遍” —— 即便表达式第一次便计算为 false。而在 while 循环结构中,若条件第一次就为 false,那么其中的 语句根本不会执行。在实际应用中, while 比 do-while 更常用一些。
5.break与continue的区别
在任何循环语句的主体部分,亦可用 break 和 continue 控制循环的流程。其中,break 用于强行退出循环, 不执行循环中剩余的语句。而continue 则停止执行当前的反复,然后退回循环起始和,开始新的反复。
6.Switch选择语句
switch(整数选择因子) {
case 整数值 1 : 语句; break;
case 整数值 2 : 语句; break;
case 整数值 3 : 语句; break;
case 整数值 4 : 语句; break;
case 整数值 5 : 语句; break;
//..
default:语句;
其中,“整数选择因子”是一个特殊的表达式,能产生整数值。 switch 能将整数选择因子的结果与每个整数 值比较。若发现相符的,就执行对应的语句(简单或复合语句)。若没有发现相符的,就执行default 语 句。
在上面的定义中,大家会注意到每个 case 均以一个 break 结尾。这样可使执行流程跳转至 switch 主体的末尾。这是构建 switch 语句的一种传统方式,但 break 是可选的。若省略 break,会继续执行后面的 case 语 句的代码,直到遇到一个 break 为止。尽管通常不想出现这种情况,但对有经验的程序员来说,也许能够善 加利用。注意最后的 default 语句没有 break,因为执行流程已到了 break 的跳转目的地。 当然,如果考虑 到编程风格方面的原因,完全可以在 default 语句的末尾放置一个 break,尽管它并没有任何实际的用处。 switch 语句是实现多路选择的一种易行方式(比如从一系列执行路径中挑选一个)。但它要求使用一个选择 因子,并且必须是 int 或 char 那样的整数值。
最近在看JAVA编程思想(第四版)这本书,将书中的一些知识点容易遇到或者混淆的概念记录下来,只是作为备忘,希望也能帮到需要的人,特此申明.
阅读全文
0 0
- JAVA编程思想学习 --- 第三章(控制程序流程)
- java编程思想读书笔记-第三章控制程序流程
- Java编程思想:第3章 控制程序流程
- 第三章控制程序流程
- 第三章 控制程序流程
- JAVA编程思想读书笔记四(控制程序流程)
- 【笔记】Java编程思想—一控制程序流程
- java编程思想(读书笔记):3.控制程序流程
- 4.JAVA编程思想——控制程序流程
- java编程思想(第四版)_第3章 控制程序流程
- JAVA基础学习篇----《thinking in java》第三章:控制程序流程
- 《Thinking in Java》学习笔记——第三章:控制程序流程
- java思想- - ->控制程序流程
- Thinking in Java 笔记(第三章 控制程序流程)
- JAVA之第3章 控制程序流程
- JAVA之第3章 控制程序流程
- JAVA之第3章 控制程序流程
- Java控制程序流程总结
- Arthit丶0816
- hadoop2.8集群搭建(单namenode)
- 实现前后端数据交互的方法
- jquery导出excel表格插件升级
- windows下面安装Python和pip
- JAVA编程思想学习 --- 第三章(控制程序流程)
- DevOps落地实践:BAT系列:CICD:iPipe vs CCI
- html 使表格随着内容自动适应宽度
- 远程连接elasticsearch遇到的问题
- netty笔记1
- Cocos2d-x里面如何实现MVC(二)
- 查看Oracle当前用户下的主键、索引、sequence创建语句
- scala:Object与Class的区别
- JAVA编程思想学习 --- 第四章 (初始化和清除)