1. 程式人生 > 實用技巧 >2020.12.22——java流程控制—結構

2020.12.22——java流程控制—結構

JAVA流程控制

順序結構

  • java的基本機構就是順序結構,除非特別指明,否則就按照順序一句一句執行

  • 順序結構是最簡答的演算法結構

  • 語句與語句之間,框與框之間是按照從上到下順序執行的,它是由若干個處理步驟組成的,它是任何一個演算法都離不開的基本演算法結構

選擇結構

  • if單選擇結構

    • 判斷一個東西是否可行,然後再執行,可以在這樣一個程式中用if來表示

    • 語法

      if(布林值表示式){
      //如果布林表示式結果為true,將執行的語句
      }

  • if雙選擇結構

    • 在if的基礎上,增加false所執行的操作,即有兩個判斷,就使用if-else 結構

    • 語法

      if(布林表示式){
      //如果布林表示式的值為true
      }else{
      //如果布林表示式的值為false
      }

  • if多選擇結構

    • if後面可以跟else if — else 語句,用於應對多種可能的情況

    • 需要注意,if語句最多隻能有一個else語句,且處於最後,可以有多個else if ,但必須在else語句之前,一旦一直else if 檢測為true,則其他語句不執行了

    • 語法

      if(布林表示式 1){
      //如果布林表示式 1的值為true執行程式碼
      }else if(布林表示式 2){
      //如果布林表示式 2的值為true執行程式碼
      }else if(布林表示式 3){
      //如果布林表示式 3的值為true執行程式碼
      }else {
      //如果以上布林表示式都不為true執行程式碼
      }
  • 巢狀的if結構

    • 即你可以在if-else裡再次使用if-else,但為了程式碼可讀性和簡潔,儘量少用巢狀結構

    • 語法

      if(布林表示式 1){
      ////如果布林表示式 1的值為true執行程式碼
      if(布林表示式 2){
      ////如果布林表示式 2的值為true執行程式碼
      }
      }
  • switch多選擇結構

    • 多選結構還有一個實現方式就是switch-case語句

    • switch-case語句判斷一個變數與一系列值中的某個值是否相等,每個值為一個分支

    • switch語句中的變數型別可以是:

      • byte,short,int,char

      • 從java se7開始,支援字串string

      • 同時case標籤必須為字串常量或字面量

      switch(expression){
      case value :
      //語句
      break; //可選
      case value :
      //語句
      break; //可選
      //你可以有任意數量的case語句
      default : //可選
      //語句
      }

迴圈結構

  • while迴圈

    • while是最基本的迴圈,它的結構為:

      while( 布林表示式 ) {
      //迴圈內容
      }
    • 只要表示式為true,迴圈就會一直執行下去

    • 大多數情況需要迴圈停止下來,需要一個讓表示式失效的方式來結束循壞

    • 少數情況需要迴圈一直進行,比如伺服器監聽等

    • 迴圈條件一直為true會造成無限迴圈(死迴圈),正常程式設計中應該儘量避免死迴圈,會影響程式效能或造成卡死崩潰

              int i = 0;
      int t = 0;
      while (i < 100) {
      i++;
      t = t + i;
      }
      System.out.println(t);//結果:5050,即1+2+3+...+99+100=5050
  • do-while迴圈

    • 對於while而言,如果不滿足條件則不能進入迴圈,但有時候我們需要既是不滿足條件也至少執行一次

    • do...while和while相似,不同的是do...while至少會執行一次迴圈

      do {
      //程式碼語句
      }while(布林表示式);
    • while和do...while的區別在於,while先判斷後執行,do...while先執行後判斷

      	  int x = 10;
       
            do{
               System.out.print("value of x : " + x );
               x++;
               System.out.print("\n");
            }while( x < 20 );
  • for迴圈

    • 雖然所有迴圈結構都可以用 while 或者 do...while表示,但 Java 提供了另一種語句 —— for 迴圈,使一些迴圈結構變得更加簡單

    • for迴圈語句是支援迭代的一種通用結構,是最有效,靈活的迴圈結構

    • for迴圈的執行次數是在執行前就確定的

      		for (int i = 1; i <= 9; i++)//外迴圈控制行
              {
                  for (int j = 1; j <= i; j++)//內迴圈控制列
                  {
                      System.out.print(i + "*" + j + "=" + i * j + "\t");//輸出結果
                  }
                  System.out.println("\n");//換行
              }
      		//99乘法表
  • 增加for迴圈

    • Java5 引入了一種主要用於陣列的增強型 for 迴圈

    • 暫時做個瞭解,陣列的時候再重點使用

      for(宣告語句 : 表示式)
      {
         //程式碼句子
      }
    • 新宣告的區域性變數必須和陣列中元素型別相同,作用於限定在迴圈中

          int [] numbers = {10, 20, 30, 40, 50};

      for(int x : numbers ){
      System.out.print( x );
      System.out.print(",");
      }
  • break

    • break 主要用在迴圈語句或者 switch 語句中,用來跳出整個語句塊

    • break 跳出最裡層的迴圈,並且繼續執行該迴圈下面的語句

    • break 跳出迴圈後不再執行迴圈內剩下的語句

         int [] numbers = {10, 20, 30, 40, 50};

      for(int x : numbers ) {
      // x 等於 30 時跳出迴圈
      if( x == 30 ) {
      break;
      }
      System.out.print( x );
      System.out.print("\n");
      }
  • continu

    • 在迴圈中continu終止本次迴圈,跳過還未執行的語句,接著進行下次是否執行的判斷

    • continue 適用於任何迴圈控制結構中。作用是讓程式立刻跳轉到下一次迴圈的迭代

    • 在 for 迴圈中,continue 語句使程式立即跳轉到更新語句

    • 在 while 或者 do…while 迴圈中,程式立即跳轉到布林表示式的判斷語句

         int [] numbers = {10, 20, 30, 40, 50};

      for(int x : numbers ) {
      if( x == 30 ) {
      continue;
      }
      System.out.print( x );
      System.out.print("\n");
      }
  • goto

    • 是java的保留字,但是並沒有在語言中正式使用