(56)Wangdao.com第八天_JavaScript 流程控制語句

 流程控制語句javascript

 

  • 條件判斷語句 if
  • 條件分支語句 switch
  • 循環語句 for 、while

switch 和 if 均可以相互轉換,switch 的性能更優於 if java

 


 

 

1. 條件判斷語句 if性能

在某條語句以前,使用條件判斷語句。spa

若是條件成立纔會執行 if 代碼塊 裏的語句,不成立,則跳過 if 代碼塊 裏的語句,而執行下面的語句。code

if 語句,只會有一個代碼塊被執行。。。有一個代碼塊被執行了,if 語句就結束了。blog

  • 語法一
    • if(條件表達式1 && 條件表達式2)
      { 語句1; 語句2; }
  • 語法二
    • if(條件表達式1 && 條件表達式2)
      {
          語句1;
          語句2;
      }
      else
      {
          語句3;
          語句4;
      }
  • 語法三
    • if (條件表達式1 && 條件表達式2)
      {
          語句1;
          語句2;
      }
      else if (條件表達式3 && 條件表達式4)
      {
          語句3;
          語句4;
      }
      else
      {
          語句5;
          語句6;
      }

 

2. 條件分支語句ip

  • switch(條件表達式)
    {
        case 表達式1:
            語句1;
            語句2;
            break;
        case 表達式2:
            語句3;
            break;
        case 表達式3:
            語句4;
            語句5;
            語句6;
            break;
        default:
            語句7;
            break;
    }

    執行時,根據 條件表達式 的值與 case 的值依次進行全等比較,全等的則執行以後的除了 case 的全部語句。rem

  若是遇到 break; 則立刻跳出 switch 語句塊。it

  若是全部的 case 都是 false,則執行 default 後面的語句。console

  • switch 語句後面的表達式,與case語句後面的表示式比較運行結果時,採用的是嚴格相等運算符(===,而不是相等運算符(==),這意味着比較時不會發生類型轉換。
    • var x = 1;
      
      switch (x) {
        case true:
          console.log('x 發生類型轉換');
          break;
        default:
          console.log('x 沒有發生類型轉換');
      }
      // x 沒有發生類型轉換

       

 


 

3. 循環語句

  • while
    • while(條件表達式)
      {
          語句1;
          語句2;
      }

       

    • 先判斷條件表達式,再執行一次代碼塊。每執行完一次代碼塊,就判斷一次條件表達式。
    • 只要條件表達式成立,就會一直執行代碼塊。

 

  • do while 
    • do
      {
          語句1;
          語句2;
      }
      while(條件表達式);
    • 先執行一次代碼塊,再進行條件表達式判斷,若是成立,則再循環一次。
    • 只要條件表達式成立,就會一直執行代碼塊。
    • 這種循環至少會執行一次。

 

  • for
    • for(初始化表達式; 條件表達式; 遞增表達式)
      {
          語句1;
          語句2;
      }
  • 初始化表達式(initialize):肯定循環變量的初始值,只在循環開始時執行一次。
  • 條件表達式(test):每輪循環開始時,都要執行這個條件表達式,只有值爲真,才繼續進行循環。
  • 遞增表達式(increment):每輪循環的最後一個操做,一般用來遞增循環變量。

 


 

break; 和 continue;

 

  • 這兩條語句用於在循環中精確控制代碼的執行。
  • break; 用於馬上跳出最近的循環,強制從外面的代碼開始執行。。。用在 循環 switch
  • continue; 用於馬上結束當次循環,去進行條件語句的判斷,而後繼續正常運行。。。只能用在循環中。

 

 


 

 代碼塊

  • 程序,是由一條一條語句組成的。
  • 語句從上往下按順序一條一條執行。
  • 在 js 中使用 {} 對語句進行分組,他們要麼都執行,要麼都不執行。。。
  • {語句1;語句2;} 這樣的咱們稱其爲 " 區塊 "  或者 "代碼塊"。
  • 在代碼塊後面就不準要分號了。
  • 只具備語句分組的做用,單獨使用無影響。

 


標籤 label

  • javascript 容許語句前面有標籤,至關於定位符, 用於跳轉到程序的標籤位置
    •  

       

  • break 標籤
    • 跳出 標籤的代碼塊
      • foo: {
          console.log(1);
          break foo;
          console.log('本行不會輸出');
        }
        console.log(2);

         

      • 還能夠跳出多層循環
      • top:
          for (var i = 0; i < 3; i++){
            for (var j = 0; j < 3; j++){
              if (i === 1 && j === 1) break top;
              console.log('i=' + i + ', j=' + j);
            }
          }
        
        // i=0, j=0
        // i=0, j=1
        // i=0, j=2
        // i=1, j=0

         

  • continue 標籤
    • 知足條件時,會跳過當前循環,直接進入下一輪外層循環。
    • 若是continue語句後面不使用標籤,則只能進入下一輪的內層循環。
      • top:
          for (var i = 0; i < 3; i++){
            for (var j = 0; j < 3; j++){
              if (i === 1 && j === 1) continue top;
              console.log('i=' + i + ', j=' + j);
            }
          }
        // i=0, j=0
        // i=0, j=1
        // i=0, j=2
        // i=1, j=0
        // i=2, j=0
        // i=2, j=1
        // i=2, j=2
相關文章
相關標籤/搜索