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就会在用户有能力操作对象之前自动调用相应的构造 ...
随机推荐
- vue中eventbus被多次触发(vue中使用eventbus踩过的坑)【bus.$on事件被多次绑定】
问题描述:只要页面没有强制刷新,存在组件切换,bus.$on方法会被多次绑定,造成事件多次触发 触发bus.$on中绑定的方法.png bus.$on多次绑定.png 解决办法:在每次调用方法 ...
- 反编译微信小程序
最近看了个微信小程序古诗词全集,想知道他的前后端是怎么实现的,所以就想到了反编译.小程序安装后会有个wxapkg格式的文件存在/data/data/com.tencent.mm/MicroMsg/** ...
- AtCoder WTF 2019 C2. Triangular Lamps Hard
题目链接 感觉这样的题真的称得上是鬼斧神工啊,\(\text{OI}\)中能多一些这样的题目就太好了. 题意: 有一个二维的三角坐标系,大概如图所示(图是从atcoder里偷下来的): 坐标系上的每个 ...
- [IOI2018]狼人——kruskal重构树+可持久化线段树
题目链接: IOI2018werewolf 题目大意:给出一张$n$个点$m$条边的无向图,点和边可重复经过,一个狼人初始为人形,有$q$次询问,每次询问要求人形态只能处于编号不小于$L$的点,狼形态 ...
- 洛谷P3959 宝藏(NOIP2017)(状压DP,子集DP)
洛谷题目传送门 Dalao的题解多数是什么模拟退火.DFS剪枝.\(O(3^nn^2)\)的状压DP之类.蒟蒻尝试着把状压改进了一下使复杂度降到\(O(3^nn)\). 考虑到每条边的贡献跟它所在的层 ...
- 自学Aruba5.2-Aruba安全认证-有PEFNG 许可证环境的角色策略管理
点击返回:自学Aruba之路 自学Aruba5.2-Aruba安全认证- 有PEFNG 许可证环境的角色策略管理 导入许可后,可以对Role进行配置: 1. 系统自带的Role的可以修改的属性: 2. ...
- 学习 Spring Boot:(二十九)Spring Boot Junit 单元测试
前言 JUnit 是一个回归测试框架,被开发者用于实施对应用程序的单元测试,加快程序编制速度,同时提高编码的质量. JUnit 测试框架具有以下重要特性: 测试工具 测试套件 测试运行器 测试分类 了 ...
- React Native——组件的生命周期
组件生命周期 上流程图描述了组件从创建.运行到销毁的整个过程,可以看到如果一个组件在被创建,从开始一直到运行会依次调用getDefaultProps到render这五个函数:在运行过程中,如果有属性和 ...
- 洛谷 P1158 导弹拦截(不是那个DP) 解题报告
P1158 导弹拦截 题目描述 经过1111年的韬光养晦,某国研发出了一种新的导弹拦截系统,凡是与它的距离不超过其工作半径的导弹都能够被它成功拦截.当工作半径为0时,则能够拦截与它位置恰好相同的导弹. ...
- qq空间爬取
QQ_spider github传送门 QQ空间spider总结 花了将近3天吧,完成了低配版qq空间的爬虫,终于能上线刚一波了,还是蛮期待的. 流程很简单,模拟登录 ==>采集==>保存 ...