English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
switch 문은 다중 경로 분기 문입니다. 표현식의 값(도입)에 따라 코드의 다른 부분으로 실행을 전환하는 효과적인 방법을 제공합니다. Go 언어는 두 가지 유형의 switch 문을 지원합니다:
표현식 switch
타입 switch
표현식 switch는 C, C ++Java 언어의 switch 문구. 표현식의 값을 기준으로 코드의 다른 부분으로 실행을 분할하는 간단한 방법을 제공합니다.
문법:
switch optstatement; optexpression{ case expression1: 문장... case expression2: 문장... ... default: 문장... }
중요 사항:
표현식 switch의 optstatement와 optexpression은 모두 선택적 문구입니다.
그리고 동시에 존재하면optstatement및optpression그러면 그들 사이에 세미콜론 (;)이 필요합니다.
switch가 어떤 표현식도 포함하지 않으면, 컴파일러는 이 표현식을 true로 가정합니다.
선택 문구는 optstatement로, 변수 선언, 증가 또는 할당 문구, 함수 호출 등 간단한 문구를 포함합니다.
선택 문구에 변수가 있으면, 이 변수의 범위는 해당 switch 문구에 제한됩니다.
switch 문구에서 case와 default 문구는 어떤 break 문구도 포함하지 않습니다. 하지만 필요하다면 break와 fallthrough 문구를 사용할 수 있습니다.
default(기본) 문구는 switch 문구에서 선택적입니다.
하나의 case가 여러 값을 포함할 수 있으며, 이 values는 쉼표(,)로 구분됩니다.
만약 case가 어떤 표현식도 포함하지 않는다면, 컴파일러는 이 표현식을 true로 가정합니다.
지정된 숫자가 주는 요일을 얻는 예제:
package main import "fmt" func main() { // Switch 문구는 두 가지 문구를 동시에 사용할 수 있습니다. 예를 들어, 선택 문구, day :=4 표현식 예: day switch day := 4; day { case 1: fmt.Println("Monday") case 2: fmt.Println("Tuesday") case 3: fmt.Println("Wednesday") case 4: fmt.Println("Thursday") case 5: fmt.Println("Friday") case 6: fmt.Println("Saturday") case 7: fmt.Println("Sunday") default: fmt.Println("Invalid") } }
출력:
Thursday
switch 문구는 선택 문구와 표현식을 포함하지 않는 예제:
package main import "fmt" func main() { var value int = 2 // switch 문구는 선택 문구와 표현식을 포함하지 않습니다. switch { case value == 1: fmt.Println("Hello") case value == 2: fmt.Println("Bonjour") case value == 3: fmt.Println("Namstay") default: fmt.Println("Invalid") } }
출력:
Bonjour
다음은 기본 문구가 없는 switch 문구입니다. case 문구에서 여러 가지 값을:
package main import "fmt" func main() { var value string = "five" //default 문이 없는 switch 문, case 문에서 여러 값을 포함하는 경우 switch value { case "one": fmt.Println("C#") case "two", "three": fmt.Println("Go") case "four", "five", "six": fmt.Println("Java") } }
출력:
Java
타입을 비교하려고 할 때 사용하는 타입 switch. 이 switch에서 case는 switch 표현식에 나타나는 타입과 비교할 타입을 포함합니다.
문법:
switch optstatement; type switch expression{ case typelist 1: 문장... case typelist 2: 문장... ... default: 문장... }
중요 사항:
선택 사항 문, 즉 opt statement, 이 switch 표현식과 유사합니다.
하나의 case가 여러 값을 포함할 수 있으며, 이 values는 쉼표(,)로 구분됩니다.
타입 switch 문에서 case와 default 문은 break 문을 포함하지 않습니다. 하지만 필요에 따라 break와 fallthrough 문을 사용할 수 있습니다.
타입 switch 문에서 default 문은 선택 사항입니다.
type switch expression타입을 결과로 내는 표현식
type switch expression에서 := 연산자를 사용하여 표현식을 할당하면, 변수의 타입은 case 문에서 지정된 타입에 따라 결정됩니다. case 문이 두 가지 이상의 타입을 포함하면, 변수의 타입은 type switch expression에서 생성된 타입입니다.
package main import "fmt" func main() { var value interface{} switch q := value.(type) { case bool: fmt.Println("값은 부울형") case float64: fmt.Println("값은 float64타입) case int: fmt.Println("값은 int 타입") default: fmt.Printf("값의 타입은: %T", q) } }
출력:
값의 타입은: <nil>