For, If/Else, Switch

For loops

func main() {
    
    i := 1
    // most basic type, with a single condition
    for i <= 3 {
        fmt.Println(i)
        i = i + 1
    }
    
    //classic "initial; condition; after" forloop
    for j := 7; j <= 9; j++ {
        fmt.Println(j)
    }
    
    // Without a condition, repeats until break.
    for {
        fmp.Println("loop")
        break
    }
    
    // continue to the next iteration
    for n := 0; n <= 5; n++ {
        if n%2 == 0 {
            continue
        }
        fmt.Println(n)
  • Here is some basic types of for loops.

If/Else

func main() {

    if 7%2 == 0 {
        fmt.Println("7 is even")
    } else {
        fmt.Println("7 is odd")
    }
    
    if 8%4 == 0 {
        fmt.Println("8 is divisible by 4")
    }
    
    if num := 9; num < 0 {
        fmt.Println(num, "is negative")
    } else if num < 10 {
        fmt.Println(num, "has 1 digit")
    } else {
        fmt.Println(num, "has multiple digits")
    }
}
  • 다른 언어의 If/Else와 비슷하다 - 조건문에 괄호는 필요없지만 중괄호는 필수다.

  • 그리고 a ? b : c 와 같 ternary operator는 Go에 없다.

Switch

  • Switch statements express conditionals across many branches.d

func main() {
    
    i := 2
    fmt.Print("Write ", i, " as ")
    //Here's basic switch
    switch i {
    case 1:
        fmt.Println("one")
    case 2:
        fmt.Println("two")
    case 3:
        fmt.Println("three")
    }
    
    switch time.Now.Weekday() {
    case time.Saturday, time.Sunday:
        fmt.Println("It's the weekend")
    default:
        fmt.Println("It's a weekday")
    }
    
    t := time.Now()
    switch {
    case t.Hour() < 12:
        fmt.Println("It's before noon")
    default:
        fmt.Println("It's after noon")
    }
    
    whatAmI := func(i interface{}) {
        switch t := i.(type) {
        case bool:
            fmt.Println("I'm a bool")
        case int:
            fmt.Println("I'm an int")
        default:
            fmt.Printf("Don't know type %T\n", t)
        }
    }
    whatAmI(true)
    whatAmI(1)
    whatAmI("hey")
}
  • You can use commas to separate multiple expressions in the same case.

  • default is optional.

  • switch without an expression is an alternate way to express if/else logic

  • Type switch compares types instead of values

Last updated