Java成长之路四
控制流
if-else,while,for,switch,do-while,return
- 在Java中数值作为布尔值是非法的,使用条件表达式来产生boolean类型的结果
do-while
与while
的区别是,即使条件表达式返回结果为false,do-while
语句至少也会执行一次;
for
循环在第一次迭代之前,执行初始化随后会执行布尔表达式;
逗号操作符
- 不是分隔符,而是在for循环的初始化和步进控制中定义多个变量,注意,要求定义的变量类型相同;
for-in语法
- 增强版for循环,用来操作数组和集合;
- 无需创建int变量和步进来控制循环技术;
- 任何一个返回数组的方法都可以用for-in循环来遍历元素;
- for-in循环适用于任何可迭代的对象(iterable)
- 重载:同名方法,参数列表或类型不同
return
- 作用:1.指定一个方法返回值(在方法返回烈性非void的情况下);2.退出当前方法,并返回作用1中值;
break和continue
- 在迭代语句的主体内,都可使用break和continue来控制循环的流程;
- break跳出循环,continue:停止本次循环,开始下一次循环;
臭名昭著的goto
- 若程序总是从一个地方跳到另一个地方,还有什么方法来控制流程?
- Java没有goto,但有相同机制的标签;
- 标签后面跟着一个冒号的标识符,它实际需要紧靠在循环语句的前方,在标签与循环之间,置入任何语句都是不明智的。
- 设置标签的唯一理由:在其中嵌套另一个循环或者一个开关;
- break和continue关键字只中断当前循环,但若搭配标签一起使用,他们就会中断并跳转到标签所在地方开始执行;
- 若想中断循环的同时退出方法,简单的一个return即可;
- 对语言能力的限制,反而使它这项特性更加具有价值;
Switch
- 可在
default
语句的末尾放置一个break
,尽管它没有任何作用;
- Switch的选择因子必须是
int
或char
那样的整数值;
- 若将
floar
或字符串作为选择因子使用,那么switch
是不会工作的;
- 可使用枚举类型优化绝句这种限制;
Random.nextInt(26) + 'a'
=>随机生成小写字母;