1. 程式人生 > >if語句,if...else if語句和switch...case語句的區別和分析

if語句,if...else if語句和switch...case語句的區別和分析

當我們有一個判斷條件的時候,顯然用if語句比較方便有效。但當判斷條件很多的時候,我們可以使用if語句或者if....eles 語句和switch  case 語句。

if...else if語句和多個if語句的區別還是很大的,if...else if在任何一個環節滿足條件的時候就將會終止判斷,只處理一個滿足條件的情況;而對於多個if語句,將會對每一個判斷條件進行判斷,自然而然會導致程式的執行效率降低。在多個判斷條件的情況下,使用if...else if語句相對於使用多個if語句而言,可以減少程式的判斷次數,提高效率。

if語句的格式:

  if(比較表示式1) {

     語句體1;

  }else if(比較表示式2) {

     語句體2;

  }else if(比較表示式3) {

     語句體3;

  }

     ...

  else {

    語句體n+1;

  }

執行流程:

  首先計算比較表示式1看其返回值是true還是false,

  如果是true,就執行語句體1,if語句結束。

  如果是false,接著計算比較表示式2看其返回值是true還是false,

  如果是true,就執行語句體2,if語句結束。

  如果是false,接著計算比較表示式3看其返回值是true還是false,

  如果都是false,就執行語句體n+1。

在多個判斷條件的情況下,不僅可以使用if...else if語句,還可以使用switch case語句。一般情況下,當判斷條件較多的情況下,使用switch case語句的效率會高於使用if...else if語句。switch...case與if...else if的根本區別在於,switch...case會根據你的條件直接跳轉到相應的case語句那。switch...case不用像if...else if那樣遍歷條件分支直到命中條件,而只需訪問對應索引項從而到達目的語句那。

總結switch語句和if語句的各自使用場景

  switch建議判斷固定值的時候用

  if建議判斷區間或範圍的時候用    

 用switch能做的,用if都能做,單反過來則不行