Go言語条件文、選択文、ループ文


文書ディレクトリ
  • 条件文
  • 選択文
  • ループ文
  • じょうけんステートメント
    他の言語と同様に、条件文はif,if elseなどである.具体的には、次の式があります.
    	a := 2
    	b := 3
    	if a > b {
    		fmt.Printf("    1")
    	}
    
    	if a <= b {
    		fmt.Printf("    2")
    	} else {
    		fmt.Printf("    3")
    	}
    
    // if   
    if       {
    }
    // if else    
    if       {
    	
    } else if       {
    	
    } else {
    
    }
    

    ifは、errがnilであるかどうかを判断するために、返されるエラー値を判断するためによく使用されます.たとえば、次のようなものです.
    	//             
       	const fileName = "file.txt"
        body, err := ioutil.ReadFile(fileName)
        if err != nil{
            fmt.Println(err)
        }else{
            fmt.Printf("%s
    "
    ,body) }

    せんたくぶん
    すぐにswitch文が思いつくかもしれませんが、間違いなくswitchで、それは2つに分けられます:式switch;タイプswitch
  • 式switchは、caseの下の文の実行のために式の結果がtrueまたはfalseであることを示します.
  • 	//              
    	var grade int
    	grade = 80
    	switch  {
    	case grade >= 80:
    		fmt.Println("   A")
    	case grade >= 70:
    		fmt.Println("   B")
    	case grade >= 60:
    		fmt.Println("   C")
    	default:
    		fmt.Println("   D")
    	}
    
  • タイプswitchは、int 32かint 64かなど、1つの変数の値タイプを判断する.例えば、1つのインタフェースタイプの値が表すデータ型ミラーの判断は、
  • である.
    	var value interface{}
    	value = 2
    	switch value.(type) {
    	case int:
    		fmt.Println("int   ")
    	case int32:
    		fmt.Println("int32   ")
    	case int64:
    		fmt.Println("int64   ")
    	case int8:
    		fmt.Println("int8   ")
    	case uint16:
    		fmt.Println("uint16   ")
    	default:
    		fmt.Println("    ")
    	}
    

    ループステートメント
    golangではループ文と他の文の差は大きくなく、ループ文のrange句が最も多く使われています.反復器に似ています.配列、スライスの各要素を遍歴したり、文字列の各文字を遍歴したり、mapの各キー値のペアを遍歴したりすることができます.
  • 正常使用
  • 	//     
    	a := []string{"s", "t", "r", "i", "n", "g"}
    	for i := 0; i < len(a); i++ {
    		fmt.Printf("i = %d , %s
    "
    , i, a[i]) }
  • range句
  • を使用
    	//      
    	b := "string"
    	for k, v := range b {
    		fmt.Println("k:", k, ", v:", v)
    	}
    
    	//     
    	var c []string
    	c = append(c, "y")
    	c = append(c, "o")
    	c = append(c, "u")
    	for k, v := range c {
    		fmt.Println("k:", k, ", v:", v)
    	}
    
    	//   map
    	var m = make(map[string]int)
    	m["A"] = 65
    	m["B"] = 66
    	m["C"] = 67
    	for k, v := range m {
    		fmt.Println("k:", k, ", v:", v)
    	}