funcmain() { i :=1// most basic type, with a single conditionfor i <=3 { fmt.Println(i) i = i +1 }//classic "initial; condition; after" forloopfor j :=7; j <=9; j++ { fmt.Println(j) }// Without a condition, repeats until break.for { fmp.Println("loop")break }// continue to the next iterationfor n :=0; n <=5; n++ {if n%2==0 {continue } fmt.Println(n)
Here is some basic types of for loops.
If/Else
funcmain() {if7%2==0 { fmt.Println("7 is even") } else { fmt.Println("7 is odd") }if8%4==0 { fmt.Println("8 is divisible by 4") }if num :=9; num <0 { fmt.Println(num, "is negative") } elseif 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
funcmain() { i :=2 fmt.Print("Write ", i, " as ")//Here's basic switchswitch i {case1: fmt.Println("one")case2: fmt.Println("two")case3: 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) {casebool: fmt.Println("I'm a bool")caseint: 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