暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【JavaSE】Java基础中的控制语句

你的知识书架 2021-08-02
416

前言


Java业务代码的编写要想实现诸多逻辑离不开控制语句,控制语句分为三大类。选择语句(分支语句)包含if语句、switch语句;循环语句包含while循环、for循环、do...while...循环;转向语句包含break语句、continue语句、return语句。

选择语句之if语句


首先来总结一下,if语句常用的四种语法结构。 

    //第一种写法
    if(布尔表达式){
    java语句;
      java语句;
    }

    执行原理是if语句发起的大括号中的语句要执行,其前提条件是布尔表达式为真。

      //第二种写法
      if(布尔表达式){//分支1
      java语句;
      }else{ //分支2
      java语句;
      }

      执行原理是如果布尔表达式的结果为true,则执行分支1,分支2不执行。如果布尔表达式的结果是false,分支1不执行,执行分支2。

      总之,这两条分支语句必会执行其中一条,在这里特别强调任何情况下只能有一个分支执行,不可能存在2个或者更多个分支执行。if语句中只要有一个分支执行了,整个if语句就会结束。

        //第三种写法
        if(布尔表达式1){//分支1
        java语句;
        }else if(布尔表达式2){ //分支2
        java语句;
        }else if(布尔表达式3){ //分支3
        java语句;
        }....

        执行原理是先判断"布尔表达式1",如果"布尔表达式1"为true,则执行分支1,然后if语句结束;如果布尔表达式1结果为false就会判断"布尔表达式2"的结果,如果是true,则执行分支2,然后整个if就结束了,以此类推;从上往下判断,只要一个分支执行,if语句执行结束。

          //第四种写法
          if(布尔表达式1){//分支1
          java语句;
          }else if(布尔表达式2){ //分支2
          java语句;
          }else if(布尔表达式3){ //分支3
          java语句;
          }else{
          java语句;
          }

          这种写法是在第三种的基础上加了else语句,这也就意味着因为else语句的存在,整个if语句必会有一条分支语句存在执行。

          选择语句之switch语句


          switch语句的语法格式和执行原理如下。

            switch(值){
            case1:
            java语句;
            java语句;
            break;
            case2:
            java语句;
            java语句;
            break;
            case3:
            java语句;
            java语句;
            break;
            default:
            java语句;
            }

            以上是一个完整的switch语句,其中break语句和default分支不是必须的。switch中的值可以支持两种数据类型分别是String类型和int类型,但是byte、short、char也可以使用在switch语句中,因为java语法可以进行自动类型转换。

            整个语句的执行原理是,如果“值”与“值1”进行比较,如果值相等,则执行该分支语句中的java语句,然后遇到“break”语句,switch语句就结束了。如果“值”与“值1”不相等,则会继续比较“值”与“值2”,以此类推。

            值得注意的是,如果“值”与“值1”相等,且该case语句中不包含break语句,执行完case语句中的java语句块,就会发生case穿透现象,即不需要判断“值”与“值2”是否相等就会执行case“值2”中的分支语句。如果case“值2”语句中仍然没有break语句,就会继续往下穿透。

            default分支语句是在“值”和所有case中的值都不匹配时执行的,类似于if语句中的else分支。

            循环语句之for循环


            语法格式如下

              for(初始化表达式; 条件表达式; 更新表达式){
              循环体;//循环体由java语句构成
              }

              执行原理是先执行初始化表达式,并且在整个循环中只执行一次。然后判断条件表达式的结果,如果条件表达式的结果为true,则执行循环体。

              循环体结束后,执行更新表达式,更新完之后,再判断条件表达式的结果,如果还是true,继续执行循环体。直到更新表达式执行结束以后,再次判断条件时,条件为false,for循环终止。


              循环语句之while循环



              语法格式如下

                while(布尔表达式){
                循环体;
                }

                执行原理是先判断布尔表达式的结果,如果为true就执行循环体,循环体结束后,再次判断布尔表达式的结果,如果还是true,继续执行循环体。

                循环语句之do ... while循环


                语法格式如下

                  do{
                  循环体;
                  }while();

                  特别注意的是while后面的分号不要遗漏。执行原理是先执行循环体中的代码,执行一次循环体后,判断布尔表达式的结果,如果为true,则继续执行循环体,如果为false循环结束。其和while循环的区别是至少会执行一次循环体的内容。


                  转向语句之break语句



                  break语句特殊在一个单词成为一条语句,continue也是这样,它俩都是一个单词成为一条语句。break语句可以用在两个地方,其他地方不行;第一个语句是switch语句中,用来终止switch语句的执行,防止case穿透现象,用来终止switch,这个用法已经介绍过。第二个位置用于循环语句中,用来终止循环的执行,break语句终止离它最近的循环。

                  下面用示例说明第二种用法。
                    for(int k = 1; k < 8; k++){
                    for(int i = 0; i < 10; i++){
                    if(i == 5){
                    break;
                    }
                    System.out.println("i = " + i);
                    }
                    }

                    上述语句段是两层for循环,当内部for循环中的i为5时,执行break语句,内部循环到此结束,但是外部循环仍然会继续,也就是break语句只会停下离它最近的循环语句。

                    转向语句之continue语句



                    continue语句是阻断当前的本次循环终止了,继续下一次循环。

                      for(int i =0; i < 10; i++){
                      if(i == 5){
                      continue;
                      }
                      System.out.println("i =" + i);
                      }
                      此次for循环的结果是
                      i = 0
                      i = 1
                      i = 2
                      i = 3
                      i = 4
                      i = 6
                      i = 7
                      i = 8
                      i = 9

                      由结果可知,continue只能阻断本次迭代余下程序的执行,因此没有打印出i=5,而并没有停下整个for循环。

                      转向语句之return语句


                      return 语句是来终止一个方法的,且向调用该方法的主调函数返回一个调用结果。


                      END



                      文章转载自你的知识书架,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                      评论