티스토리 뷰
if
if 조건식 {
...
}
위의 형태로 if문을 작성한다. 다른 언어들과 달리 go에서 조건식은 소괄호 안에 작성하지 않아도 되고 소괄호를 사용하여 작성해도 된다.
C와 달리 go의 조건식은 boolean 타입이어야 한다.
if 조건식1 {
...
} else if 조건식2 {
...
} else {
...
}
여러 개의 조건을 사용하기 위해서는 else if를 사용하면 된다.
Java에서는 if문에 {중괄호}를 사용하지 않아도 되었다. go에서는 {중괄호}는 필수적이다.
여는 괄호 { 는 if와 같은 줄에 있어야 하고, 닫는 괄호 } 는 else와 같은 줄에 있어야 한다.
import "fmt"
func main() {
i := 1
if i > 0 {
fmt.Println("양수")
}
else {
fmt.Println("음수")
}
}
위의 코드를 보면 else는 닫는 괄호와 다른 줄에 있다. 이를 실행하면 syntax error가 발생한다.
if 초기화구문; 조건식 {
...
}
if문에는 초기화 구문을 작성할 수 있다.
import "fmt"
func main() {
if i := 1; i > 0 {
fmt.Println("양수")
}
}
switch
switch 값 {
case 조건1:
...
case 조건2;
...
default:
...
}
switch 문의 형식은 위와 같다. break문을 사용하지 않아도 된다는 점이 특이하다.
import "fmt"
func main() {
switch i := 0; i {
case 0:
fmt.Println("0입니다.")
fallthrough
default:
fmt.Println("0이 아닙니다.")
}
/*
출력
0입니다.
0이 아닙니다.
*/
}
go에서 switch문은 일치하는 case를 만나면 switch문을 빠져 나오기 때문에, break를 쓰지 않아도 된다. 만약 sitch 문을 빠져나오지 않고 다음 case로 넘어가려면 fallthrough를 사용하면 된다.
위에서 언급한 if문 처럼, 여는 괄호 { 는 switch문과 같은 줄에 위치해야 한다.
case문에 값을 콤마 , 로 구분하고 여러 개의 값을 사용할 수 있는 것도 특징이다.
import "fmt"
func main() {
switch i := 0; i {
case 0:
fmt.Println("0입니다.")
default:
fmt.Println("0이 아닙니다.")
}
}
if문과 마찬가지로 초기화 구문을 switch문에 사용할 수 있다.
switch {
case 조건식1:
...
case 조건식2:
...
default:
...
}
switch에 다른 값을 기입하지 않고 위와 같은 형식으로 작성할 수 있다.
func main() {
i := 6
switch {
case i < 0:
fmt.Println(i, "은 음수")
case i > 0:
fmt.Println(i, "은 양수")
default:
fmt.Println(i, "은 영")
}
}
else if를 대신하여 switch를 사용할 수 있다.
for
for 초기화구문; 조건식; 후속작업 {
...
}
go에서는 모든 반복문은 for을 사용한다. while이 없다는 점이 특징이다. 초기화구문, 조건식, 후속작업은 모두 생략가능하다. 조건식을 생략한다면 for문은 무한루프와 같은 기능을 한다.
func main() {
for i := 2; i <= 9; i++ {
for j := 1; j <= 9; j++ {
fmt.Println(i , " X ", j , " = ", i * j)
}
}
}
위의 코드는 구구단을 출력한다.
break & continue
break와 continue는 다른 언어에서도 많이 사용된다. break는 반복문을 종료할 때, continue는 반복문을 처음부터 다시 실행할 때 사용한다.
func main() {
i := 2
for {
if i == 10 {
break
}
j := 1
for {
if j == 10 {
break
}
fmt.Println(i , " X ", j , " = ", i * j)
j++
}
i++
}
}
위의 구구단을 출력하는 코드를 break를 사용하도록 변경해 보았다.
import "fmt"
func main() {
i := 2
for {
if i == 10 {
break
}
j := 1
LOOP:
for {
if j == 10 {
break LOOP
}
fmt.Println(i , " X ", j , " = ", i * j)
j++
}
i++
}
}
break LOOP를 만나면 LOOP라고 지정된 for문을 빠져나온다.
- Total
- Today
- Yesterday
- 2차 인터뷰
- graphql
- Python
- pm.test
- Squash and merge
- Kotlin
- postman tests
- postman
- solidity
- Basic Type
- git
- 확장 함수
- squash merge
- string
- hashcode
- downTo
- 코딩테스트
- 네이버 2022 공채
- 주생성자
- python3
- DGS Framework
- pm.expect
- java
- github
- postman collection
- go 특징
- 1차 인터뷰
- Kotlin In Action
- mysql
- 코틀린
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |