Latest web development tutorials

Idź język instrukcji switch

Idź język instrukcji warunkowych Idź język instrukcji warunkowych

Instrukcja switch służy do wykonywania różnych działań opartych na różnych warunkach, każdy przypadek jest inny oddział, z góry i na dół indywidualnie testowane aż meczu. ,

Instrukcja switch realizuje proces od góry do dołu, aż zostanie znaleziony, to ostatnie nie musi pasować plusa przerwę

gramatyka

Składnia Go instrukcja switch język programowania jest następująca:

switch var1 {
    case val1:
        ...
    case val2:
        ...
    default:
        ...
}

Zmienna zm1 może być dowolnego typu i wart1 i wart2 może mieć dowolną wartość z tego samego typu. Typ nie jest ograniczony do stałej lub liczba całkowita, lecz muszą być tego samego typu lub wynik jest ten sam typ ekspresji.

Można jednocześnie testować wiele wartości mogłyby się kwalifikować, podzielić je przecinkami, na przykład: sprawa wart1, wart2, val3.

Schemat blokowy:

Przykłady

package main

import "fmt"

func main() {
   /* 定义局部变量 */
   var grade string = "B"
   var marks int = 90

   switch marks {
      case 90: grade = "A"
      case 80: grade = "B"
      case 50,60,70 : grade = "C"
      default: grade = "D"  
   }

   switch {
      case grade == "A" :
         fmt.Printf("优秀!\n" )     
      case grade == "B", grade == "C" :
         fmt.Printf("良好\n" )      
      case grade == "D" :
         fmt.Printf("及格\n" )      
      case grade == "F":
         fmt.Printf("不及格\n" )
      default:
         fmt.Printf("差\n" );
   }
   fmt.Printf("你的等级是 %s\n", grade );      
}

Powyższy kod jest wykonywany w wyniku:

优秀!
你的等级是 A

Typ przełącznika

Instrukcja switch może być również używany do zmiennej typu przełącznika, aby określić typ zmiennej interfejs właściwie przechowywany.

Typ przełącznika składnia jest następująca:

switch x.(type){
    case type:
       statement(s);      
    case type:
       statement(s); 
    /* 你可以定义任意个数的case */
    default: /* 可选 */
       statement(s);
}

Przykłady

package main

import "fmt"

func main() {
   var x interface{}
     
   switch i := x.(type) {
      case nil:	  
         fmt.Printf(" x 的类型 :%T",i)                
      case int:	  
         fmt.Printf("x 是 int 型")                       
      case float64:
         fmt.Printf("x 是 float64 型")           
      case func(int) float64:
         fmt.Printf("x 是 func(int) 型")                      
      case bool, string:
         fmt.Printf("x 是 bool 或 string 型" )       
      default:
         fmt.Printf("未知型")     
   }   
}

Powyższy kod jest wykonywany w wyniku:

x 的类型 :<nil>

Idź język instrukcji warunkowych Idź język instrukcji warunkowych