Ana içeriğe geç

Bölüm 06/03: Durum Kontrolleri

Label Kullanımı

Kodun akışı içinde, aynı makine dilindeki jmp (jump) gibi, bir yerden bir yere zıplamak mümkün:

https://go.dev/play/p/LKOJu0advHS

package main

import "fmt"

func main() {
switchStatement:
    switch 1 {
    case 1:
        fmt.Println("1") // 1
        for i := 0; i < 5; i++ {
            break switchStatement // daha ilk harekette switchStatement'dan çıkar ve fmt.Println("3") kısmına gider
        }
        fmt.Println("2")
    case 2:
    default:
        fmt.Println("default case...")
    }
    fmt.Println("3") // 3
}

// 1
// 3

goto Kullanımı

Bilgisayar programlama dillerinin atası olan B.A.S.I.C’de olduğu gibi, belli bir durum olduğunda kodun içinde başka bir yere gitmeyi sağlar:

https://go.dev/play/p/fPIMNugFU-S

package main

import "fmt"

func main() {
    i := 0
Start:
    fmt.Println(i)
    if i > 2 {
        goto End
    } else {
        i += 1
        goto Start
    }
End:
}

// 0
// 1
// 2
// 3