0003.Java学习—控制流程

控制流程

块作用域

块(复合语句)指由一对大括号括起来的若干条简单的Java语句。
块确定了变量的作用域。
一个块可以嵌套在另一个块中。
注意:不能在嵌套的两个块中声明同名的变量。

条件语句

  1. 在Java中, if-else 语句是控制程序执行流程最基本的形式。 其中 else 是可选的,因此可以有两种形式的 if。格式为:
    //第一种
    if(Boolean-condition) {
        statement
    }
    
    //第二种
    if(Boolean-expression) {
    statement1
    }else {
        statement2
    }
    
    //第三种
    if(Boolean-expression1) {
        statement1
    }else if(Boolean-expression2){
        statement2
    }else if(Boolean-expression3){
        statement3
    }else {
        statement4
    }
    
  2. 三种格式流程图分别为:
    第一种流程图:
    在这里插入图片描述
    第二种流程图:
    在这里插入图片描述
    第三种流程图:
    在这里插入图片描述
  3. 执行语句会在每一次循环前,判断布尔表达式返回值是否为 true。
  4. 条件表达式必须是布尔表达式(关系表达式或逻辑表达式)、布尔变量
  5. 条件必须用括号括起来。结尾的一条简单语句,也可以是包含在大括号 {} 内的的复合语句 —— 封闭在大括号内的一组简单语句。

迭代语句

概述

while,do-while 和 for 用来控制循环语句(有时也称迭代语句)。只有控制循环的布尔表达式计算结果为 false,循环语句才会停止。

while语句

  1. while循环的形式:
    while(Boolean-expression) {
        statement
    }
    
    int i = 1;
    while(i < 10) {
        System.out.println(i);
        i++;
    }
    
    执行流程图如下:
    在这里插入图片描述
  2. 执行语句会在每一次循环前,判断布尔表达式返回值是否为 true。

do-while语句

  1. do-while 的格式如下:
    	do{
        statement
    } while(Boolean-expression);
    
    int i = 1;
    do{
        println(i);
        i ++;
    }while(i < 10);
    
    执行流程图如下:
    在这里插入图片描述
  2. while和do-while的区别:
    (1). 即使条件表达式返回结果为 false, do-while 语句也至少会执行一次。
    (2). 在 while 循环体中,如布尔表达式首次返回的结果就为 false,那么循环体内的语句不会被执行。
    (3). 实际应用中,while 形式比 do-while 更为常用。

for语句

  1. for 循环可能是最常用的迭代形式。 该循环在第一次迭代之前执行初始化。随后,它会执行布尔表达式,并在每次迭代结束时,进行某种形式的步进。
  2. for 循环的形式是:
    for(initialization; Boolean-expression; step){
        statement
    }
    
  3. 初始化 (initialization) 表达式、布尔表达式 (Boolean-expression) ,或者步进 (step) 运算,都可以为空。为空的for循环是无限循环,只能在表达式中添加退出语句。
  4. 每次迭代之前都会判断布尔表达式的结果是否成立。
  5. 一旦计算结果为false,则跳出 for 循环体并继续执行后面代码。 每次循环结束时,都会执行一次步进。
  6. for语句内部定义不能在循环体之外使用。
  7. 例:
    for (int i = 1; i < 10; i++) {
    	System.out.println(i);
    }
    
  8. 执行流程图如下:
    在这里插入图片描述

for-in语句

  1. Java 5 引入了更为简洁的“增强版 for 循环”语法来操纵数组和集合。
  2. for-in 无需你去创建 int 变量和步进来控制循环计数。
  3. 增强for 循环的形式是:
    int[] intArr = new int[]{1, 2, 3, 4, 5, 6};
    for(int i : intArr){
    	System.out.println(i);
    }
    

多重选择: switch语句

  1. 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;
    }
    
    //例:
    int i = 2;
    switch(i) {
        case 1 :
            System.out.println("星期一");
            break;
        case 2 :
            System.out.println("星期二");
            break;
        case 3 :
            System.out.println("星期三");
            break;
        case 4 :
            System.out.println("星期四");
            break;
        case 5 :
            System.out.println("星期五");
            break;
        case 6 :
            System.out.println("星期六");
            break;
        case 7 :
            System.out.println("星期日");
            break;
        default :
            System.out.println("数字输入错误, 请重新输入");
            break;
    }
    
  2. ​switch语句将从与选项值相匹配的case标签处开始执行直到遇到break语句,或者执行到switch语句的结束处为止。如果没有相匹配的case标签,而有default子句,就执行这个子句。
  3. 注意:
    (1). switch(表达式)中表达式的值必须是下述几种类型之一:byte, short, char, int, 枚举(jdk 5.0),
    String(jdk 7.0);
    (2). case子句中的值必须是常量,不能是变量名或不确定的表达式值;
    (3). 同一个switch语句,case常量互不相同;
    (4). 如果在case分支语句后面没有加break将会接着执行下一个case分支语句,得不到想要的结果,所以不推荐使用switch语句。

中断控制流语句

return

  1. return的两个作用:
    (1). 指定一个方法的返回值(方法返回值类型非void)
    (2). 退出当前方法
  2. 如果方法的返回值类型非void,必须保证每个代码路径都有返回值

break和continue

  1. break 表示跳出当前循环体。而 continue 表示停止本次循环,开始下一次循环。
  2. 例:
    for (int j = 0; j <= 5; j++) {
        if (j == 3) {
            continue;
        } else if (j == 4) {
            break;
        }
        System.out.println(j);
    }
    
    //result:
    0
    1
    2
    
  3. 解析:正常应该输出0,1,2,3,4,5,但是当j=3的时候停止了本次循环,没有输出,当j=4时,跳出了循环体。

https://blog.csdn.net/qq_43033513/article/details/114971307?spm=1001.2014.3001.5502

0004.Java学习—集合(List包含源码分析)
如有任何错误,请不吝赐教。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值