Java编程思想读书笔记——控制执行流程

第四章 控制执行流程

4.1 true和false
所有的条件语句都利用条件表达式的真或假来决定执行路径。

4.2 if-else
三种形式

if(Boolean-expression){
    Statement
}
if(Boolean-expression){
    Statement
}else{
    Statement
}
if(Boolean-expression){
    Statement
}else if(Boolean-expression){
    Statement
}
...
}else{
    Statement
}

else子句可以没有。

4.3 迭代
while

while(Boolean-expression){
    Statement
}

do-while

do
    Statement
while(Boolean-expression);

while和do-while的区别在于do-while中的statement至少会执行一次,而while中的Statement有可能不会执行。
for

for(initialization; Boolean-expression; step){
    Statement
}

for循环中包括初始化(initialization)表达式、布尔表达式(Boolean-expression)和步进(step)运算。每一次迭代都会测试布尔表达式,如果所得结果为false,则执行循环体代码,之后进行一次步进运算;如果所得结果为true,则跳出循环。

需要注意的是for循环中,可以定义多个同类型的变量,来操控循环。例如:

for(int i = 1, j = i + 10; i < 5; i++, j = i * 2){
    System.out.println("i = " + i + " j = " + j);
}

4.4 Foreach语法
JDK5之后引入的一种更加简洁的for语法,用于数组和容器,不必创建int变量去对由访问项构成的序列进行计数,foreach将自动产生每一项。例如:

Random rand = new Random(47);
float[] f = new float[10];
for(int i = 0; i < 10; i++){
    f[i] = rand.nextFloat();
}
for(float x : f){
    System.out.println(x);
}

4.5 return
return一方面指定方法返回什么值(如果是void,则没有返回值),另一方面则是退出当前方法。

4.6 break和continue
break用于跳出当前循环,continue用于结束本轮循环,直接进入下一轮循环。

无限循环

while(true){
    Statement
}
for(;;){
    Statement
}

4.7 臭名昭著的goto
标签的语法:

label1:

使用

lable1:
ourter-iteration {
    inner-iteration {
        //...
        break; // (1)
        //...
        continue; // (2)
        //...
        continue label1; // (3)
        //...
        break label1;
    }
}

(1)处的break仅是跳出内层循环;
(2)处的continue仅是结束当前轮次的内层循环,进入下一轮次的内层循环;
(3)处的continue是结束当前轮次的内层循环和外层循环,直接转到label1处,然后进入下一轮次的外层循环;
(4)处的break是结束内层循环和外层循环,直接跳到label1处,但并不进入循环。
一般总结,针对for循环和while循环均有效:
1) 一般的continue会退回最内层循环的开头,并继续执行;
2) 带标签的continue会到达标签的位置,并重新进入紧邻在那个标签后面的循环;
3) 一般的break会中断并跳出当前循环;
4) 带标签的break会中断并跳出标签所指的循环。

Java中需要使用标签的场景主要是在循环嵌套中使用break和continue。

4.9 switch
switch语法

switch(integral-selector) {
case integral-value1:
    Statement;
    break;
case integral-value2:
    Statement;
    break; 
case integral-value3:
    Statement;
    break;
case integral-value4:
    Statement;
    break;
case integral-value5:
    Statement;
    break; 
...
default:
    Statement;  
}

其中switch后的跟一个变量,该变量类型可以是整数类型(byte/char/short/int/long)、枚举类型和String(JDK 7之后)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值