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))
}
반응형