Java编程思想 学习笔记4
四、控制执行流程
1.true和false
所有条件语句都利用条件表达式的真或假来决定执行路径。注意Java不允许我们将一个数字作为布尔值使用。
2.if-else
3.迭代
while、do-while和for来控制循环,有时会将它们划分为迭代语句。语句会重复执行,直到起控制作用的布尔表达式得到“假”的结果为止。
4.Foreach语法
Java SE5引入了一种新的简洁的for语法用于数组和容器,表示不必创建int变量去对由访问项构成的序列进行记数,foreach将自动生成每一项。
foreach还可以用于任何Iterable对象。
5.return return关键词有两个方面的用途:一方面指定一个方法返回什么值,另一方面它会导致当前的方法退出,并返回那个值。
6.break和continue break用于强行退出循环,不执行循环中剩余的语句。而continue则停止当前执行的迭代,然后退回循环起始处,开始下一次迭代。
7.臭名昭著的goto 尽管goto仍是Java中的一个保留字,但在语言中并未使用它:Java没有goto。然而,Java也能完成一些类似于跳转的操作,这与break和continue这两个关键词有关。
标签是后面跟有冒号的标识符,就像这样: labell: 。在Java中,标签起作用的唯一的地方是在迭代语句之前。表明“刚好之前”的意思,在标签和迭代中置入任何语句都不好。而在迭代之前设置标签的唯一理由是:我们希望在其中嵌套另一个迭代或者一个开关(switch)。这是由于break和continue关键词通常只中断当前循环,但随同标签一起使用,它们就会中断循环,直到标签所在的地方:
labell:
outer-iteration {
inner-iteration {
//...
break; // (1)
//...
continue; // (2)
//...
continue labell; // (3)
//...
break labell; // (4)
}
}
在(1)中,break中断内部迭代,回到外部迭代。在(2)中,continue使执行点移回内部迭代的起始处。在(3)中,continue labell同时中断内部迭代以及外部迭代。在(4)中,break labell也会中断所有迭代,并返回labell处,但并不重新进入迭代。也就是说,它实际是中止了两个迭代。
①一般的continue会退会最内层循环的开头,并继续执行。
②带标签的continue会到达标签的位置,并重新进入紧接在那个标签后面的循环。
③一般的break会中断并跳出当前循环
④带标签的break会中断并跳出标签所指的循环。
要记住的重点是:在Java里需要使用标签的唯一理由就是因为有循环嵌套存在,而且想从多层嵌套中break或continue。
8.switch
switch有时也被规划为一种选择语句。根据整数表达式的值,switch语句可以从一系列代码中选出一段去执行。
switch语句是实现多路选择的一种干净利落的方法。但它要求使用一个选择因子,并且必须是int或char那样的整数值。
enum可以和switch协调工作。
9.总结
本章介绍的都是一些基础的常见知识,根据本人需求进行了适当删减,以达到学习记录的目的。标签的使用需要谨慎,以代码清晰优先。
该片讲述的是让·雷诺扮演的杀手Ruby为了被仇人杀害的情人,而走上了复仇之路。期间他遇见了有着善良的热心肠并且还有点愚蠢的Quentin,二人发生了让人啼笑皆非的一段段法式喜剧
Java编程思想 学习笔记4的更多相关文章
- [Java编程思想-学习笔记]第3章 操作符
3.1 更简单的打印语句 学习编程语言的通许遇到的第一个程序无非打印"Hello, world"了,然而在Java中要写成 System.out.println("He ...
- Java编程思想 学习笔记1
一.对象导论 1.抽象过程 Alan Kay曾经总结了第一个成功的面向对象语言.同时也是Java所基于的语言之一的Smalltalk的五个基本特性,这些特性表现了纯粹的面向对象程序设计方式 1)万物皆 ...
- [Java编程思想-学习笔记]第1章 对象导论
1.1 抽象过程 Java是一门面向对象的语言,它的一个优点在于只针对待解问题抽象,而不用为具体的计算机结构而烦心,这使得Java有完美的移植性,也即Java的口号"Write Once, ...
- Java编程思想 学习笔记11
十一.持有对象 通常,程序总是根据运行时才知道的某些条件去创建新对象.在此之前,不会知道所需对象的数量,甚至不知道确切的类型. Java实用库还提供了一套相当完整的容器类来解决这个问题,其中基本的类 ...
- Java编程思想学习笔记——类型信息
前言 运行时类型信息(RTTI:Runtime Type Information)使得我们可以在程序运行时发现和使用类型信息. Java在运行时识别对象和类的信息的方式: (1)一种是RTTI,它假定 ...
- Java编程思想 学习笔记12
十二.通过异常处理错误 Java的基本理念是“结构不佳的代码不能运行”. Java中的异常处理的目的在于通过使用少于目前数量的代码来简化大型.可靠的程序的生成,并且通过这种方式可以使你更加自信:你的 ...
- Java编程思想 学习笔记10
十.内部类 可以将一个类的定义放在另一个类的定义内部,这就是内部类. 内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起,并控制位于内部的类的可视性.然而必须要了解,内部类和组合是 ...
- Java编程思想 学习笔记7
七.复用类 1.组合语法 在新的类中产生现有类的对象.由于新的类是由现有类的对象所组成,所以这种方法叫做组合. 类中域为基本类型时能够自动被初始化为零.对象引用被初始化为null. 编译器不是简单地为 ...
- Java编程思想 学习笔记5
五.初始化与清理 1.用构造器确保初始化 在Java中,通过提供构造器,类的设计者可确保每个对象都会得到初始化.创建对象时,如果其类具有构造器,Java就会在用户有能力操作对象之前自动调用相应的构造 ...
随机推荐
- TFS2018 linux Agent的安装
1. 感谢徐蕾老师的文档,根据文档简单学会了TFS agent的安装,在此简单记录一下: 前置条件: CentOS7.4 or CentOS7.5的版本 安装的软件有git 2.17 dotnet s ...
- Java和Android的Lru缓存,及其实现原理
一.概述 Android提供了LRUCache类,可以方便的使用它来实现LRU算法的缓存.Java提供了LinkedHashMap,可以用该类很方便的实现LRU算法,Java的LRULinkedHas ...
- Log4J日志信息配置文件详解
原文地址: http://blog.csdn.net/wuxintdrh/article/details/78282097 使用log4j 记录日志甚是方便,其提供了两种日志配置方式,log4j.pr ...
- jquery Ajax get()/post()
get()/post()是通過http get/post向服務器請求數據的. http get vs post: get:向指定資源獲取數據 post項指定資源提交數據. get是向遠程服務器的獲取數 ...
- 洛谷P2397 yyy loves Maths VI (mode)
P2397 yyy loves Maths VI (mode) 题目背景 自动上次redbag用加法好好的刁难过了yyy同学以后,yyy十分愤怒.他还击给了redbag一题,但是这题他惊讶的发现自己居 ...
- 睡前小dp-hdu3853-概率dp
http://acm.hdu.edu.cn/showproblem.php?pid=3853 膜猴烧酒madoka 讲定义为dp[i][j] 位置为ij的魔法值期望,可以发现dp[i][j] = dp ...
- MT【34】正余弦的正整数幂次快速表示成正余弦的线性组合
问题:如何快速把$cos^4xsin^3x$表示成正弦,余弦的线性组合? 分析:利用牛顿二项式展开以下表达式: 再利用欧拉公式$e^{i\theta}=cos\theta+isin\theta$ 比如 ...
- SpringCloud基础篇AOP之拦截优先级详解
前面两篇分别介绍了AOP的基本使用姿势和一些高级特性,当时还遗留了一个问题没有说明,即不同的advice,拦截同一个目标方法时,优先级是怎样的,本篇博文将进行详细分析 同一个切面中,不同类型的advi ...
- ThinkPHP5 隐藏index.php问题
隐藏index.php 可以去掉URL地址里面的入口文件index.php,但是需要额外配置WEB服务器的重写规则. 以Apache为例,需要在入口文件的同级添加.htaccess文件(官方默认自带了 ...
- PopupWindow 学习总结
http://wenku.baidu.com/link?url=d48Zr6m7XJq-2JagViGTtVhsvGNHoBg9bHJCbQUJSb5tjRPx9ecavBNlL71ywrT8josV ...