Programming Language/Go

[Go] Go언어 튜토리얼3_조건문, 반복문 사용하기

new_challenge 2020. 4. 1. 23:19
반응형

이번 포스팅은 go언어를 사용하여 

조건문, 반복문 등을 사용하는 튜토리얼 입니다

 

 

 

1. for, range, ...args

- Go에서 loop는 오로지 for을 사용하는 것만으로 가능함

- 여기서 사용되는 range는 array에 loop를 적용할 수 있도록 해줌

- range는 실행시 index와 value를 같이 return 한다.

package main

import "fmt"

func superAdd(numbers ...int) int {
    for index, number := range numbers {
        fmt.Println(index, number)
    }
    return 1
}


func main() {
    superAdd(10,20,30,40,50)
}

>> 위 함수를 실행하면 아래와 같이 index와 value를 print한다.

 

 

package main

func superAdd(numbers ...int) int {
    for i:=0; i <len(numbers); i++ {
        fmt.Println(numbers[i])
    }
    return 1
}

func main() {
    superAdd(10,20,30,40,50)
}

>> 바로 위와 같은 코드로 작성 법만 다르게 한것

 

 

package main

import "fmt"

func superAdd(numbers ...int) int {
    total := 0
    
    for _, number := range numbers {
        total += number
    }
}

func main() {
    result := superAdd(10,20,30,40,50)
    fmt.Println(result)
}

>> range는 오로지 for 안에서만 작동 가능함

>> index를 사용하지 않을 때는 위와 같이 작성

 

 

2. if, else

- go언어에서 if조건문 사용 방법

package main

import "fmt"

func canIDrint(age int) bool {
    if age < 18 {
        return false
    }
    return true
}


func main() {
    fmt.Println(canIDrint(16))
}

 

 

- variable expression : if 를 쓰는 순간에 variable을 생성 할 수 있다.

package main

improt "fmt"

func canIDrinkKA(age int) bool {
    if koreanAge := age+2; koreanAge < 18 {
        return false
    }
    return true
}


func main() {
    fmt.Println(canIDrinkKA(16))
}

>> 위와 같이 if 안에서 variable을 작성하면 if-else 구문 안에서만 사용되는 변수

>> 오로지 if 부분만을 위해 variable을 생성 할 수 있음

 

 

3. Switch

- switch는 기본적으로 값을 체크해주는 방법이다

- switch를 사용하면 if-else구문의 반복이 난무하는 경우를 피할 수 있다

- 사용 예제 1

package main

import "fmt"

func canIDrint(age int) bool {
    switch age {
    case 10:
        return false
    case 18:
        return true
    }
    return false
}


func main() {
    fmt.Println(canIDrink(16))
}

 

 

- 사용 예제 2

package main

import "fmt"

func canIDrink(age int) bool {
    switch {
    case age < 18:
        return false
    case age == 18:
        return ture:
    case age > 50:
        return false
    }
    return rture
}


func main() {
    fmt.Println(canIDrink(20))
}

 

 

- switch에서도 variable expression사용 가능

package main

import "fmt"

func canIDrink(age int) bool {
    switch koreanAge := age+2; koreanAge {
    case 10:
        return false
    case 18:
        return true
    }
    return false
}


func main() {
    fmt.Println(canIDrink(17))
}

 

반응형