Java基础:4. 流程控制语句(分支和循环)

  • 1 分支结构

    • 1.1 分支结构的概念

      • 当需要进行条件判断并做出选择时,使用分支结构。

         

    • 1.2 if分支结构

                        if(条件表达式) {

                                语句块;

                         }

                                                

 

  • ​​​判断条件表达式是否成立
  • => 若成立,则执行语句块;
  • => 若不成立,则跳过语句块;
    • 1.3 if else分支结构

      • if(条件表达式) {
        • 语句块1;
      • } else {
        • 语句块2;
      • }
      • 判断条件表达式是否成立
      • => 若成立,则执行语句块1;
      • => 若不成立,则执行语句块2;
    • 1.4 if else if else分支结构

       

      • if(条件表达式1) {

        • 语句块1; }
      • else if(条件表达式2) {
        • 语句块2; }
      • else {
        • 语句块n;
      • }
      • 判断条件表达式1是否成立
      • => 若成立,则执行语句块1;
      • => 若不成立,则判断条件表达式2是否成立
        • => 若成立,则执行语句块2;
        • => 若不成立,则执行语句块n; 
  •  
    • 1.5 switch case分支结构

      • switch(变量/表达式) {
        • case 字面值1: 语句块1; break;
        • case 字面值2: 语句块2; break;
        • ...
        • default:语句块n;
      • }
        • ​​​​​​​
        • 计算变量/表达式的数值 => 判断是否匹配字面值1
        • => 若匹配,则执行语句块1 => 执行break跳出当前结构
        • => 若不匹配,则判断是否匹配字面值2
        • => 若匹配,则执行语句块2 => 执行break跳出当前结构
        • => 若不匹配,则执行语句块n
        • switch()中支持的数据类型有:byte、short、char以及int类型,从jdk1.5开始支持枚举类型,从jdk1.7开始支持String类型。
        • 局部变量:作用范围是从声明开始一直方法体结束
        • 块变量:作用范围是从声明开始一直到当前语句块结束
        • case 穿透,因为没有 break 跳出,会直接执行下面语句,直到遇到 break
  • ​​​​​​​​​​​​​​​​​​​​​2. 循环结构

    • 2.1 循环结构的概念

       

      • 在Java程序中若希望重复执行一段代码时,就需要使用循环结构。
      • 任何复杂的程序逻辑都可以通过顺序、分支、循环三种程序结构实现。
    • 2.2 for循环

      • for(初始化表达式; 条件表达式; 修改初始值表达式) {
        • 循环体;
      • }
      • 执行初始化表达式 => 判断条件表达式是否成立
      • => 成立则执行循环体 => 修改初始值表达式 => 判断条件是否成立
      • => 若不成立,则循环结束
    • ​​​​​​​2.3 continue关键字

      • continue语句用在循环体中,用于结束本次循环而开始下一次循环。
    • 2.4 break关键字

      • break用于退出当前语句块,break用在循环体中用于退出循环。
      • for(;;) - 这种没有循环条件的循环叫做 无限循环,俗称“死循环”。
    • 2.5 双重for循环的格式

      • for(初始化表达式1; 条件表达式2; 修改初始值表达式3) {
        • for(初始化表达式4; 条件表达式5; 修改初始值表达式6) {
          • 循环体;
        • ​​​​​​​}
      • }
      • 双重for循环的执行流程
        • 执行表达式1 => 判断表达式2是否成立
          • => 若成立,则执行表达式4 => 判断表达式5是否成立
            • => 若成立,则执行循环体 => 执行表达式6 => 表达式5是否成立
            • => 若不成立,则内层循环结束 => 表达式3 => 表达式2是否成立
          • ​​​​​​​=> 若不成立,则外层循环结束
      • 双重for循环的特点
        • 外层循环用于控制打印的行数,内层循环用于控制打印的列数,外层循环改一下,内层循环从头到尾跑一圈。
        • 在以后的开发中若需要打印多行多列时,需要使用双重循环。
        • 多重循环不宜嵌套太多层,否则效率很低。一般到三重循环即可,最常见的就是双重循环。
    • 2.6 break关键字跳出多层循环

      • ​​​​​​​在嵌套的循环结构中,break用于退出所在循环体。

        • ​​​​​​​for (...) {

          • for(...) { 
            • break;
          • }
        • }
      • 如果要退出外层循环体,需要使用标号的方式。

        • outer: for (...) {
          • for(...) {
            • ​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​break outer;
          • }
        • }
    • 2.7 while循环

      • while(条件表达式) {
        • 循环体;
      • }
      • ​​​​​​​
      • 判断条件表达式是否成立
        • => 若成立,则执行循环体 => 判断条件表达式是否成立
        • => 若不成立,则循环结束 
    • 2.8 while循环和for循环比较

      • while循环和for循环完全可以互换,当然推荐使用for循环。
      • while循环更适合于明确循环条件但不明确循环次数的场合中。
      • for循环更适合于明确循环次数或范围的场合中。
      • while(true) 等价于 for(;;) 都表示无限循环。
    • 2.9 do while循环

      • do {
        • 循环体;
      • } while(条件表达式);
      • 执行循环体 => 判断条件表达式是否成立
      • => 若成立,则执行循环体 => 判断条件表达式是否成立
      • => 若不成立,则循环结束
      • do-while循环主要用于至少执行一次循环体的场合中。
      • 局部变量:作用范围是从声明开始一直方法体结束
      • 块变量:作用范围是从声明开始一直到当前语句块结束
      • case 穿透,因为没有 break 跳出,会直接执行下面语句,直到遇到 break
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值