Golang 조건문과 반복문 - Go series(4)
Categories: Golang
조건문
-
if문
- 다른언어와 다른점
- 조건 블럭 시작 ({) 을 if문과 같은 라인에 두어야 함.
- 조건식은 반드시 Boolean 식이어야 함( 0, 1등 숫자 X)
- 예시
if a == 1{ println("1") } else if a == 2{ println("2") } else { println("X") }
-
조건식을 사용하기 전에 간단한 문장을 같이 실행할 수 있다. 주의할 점은 이 때 정의된 변수는 if문 블럭 혹은 if-else문의 블럭 안에서만 사용할 수 있다는 것이다. switch, for, 등에서도 적용이 된다.
-
예시)
if temp := 2; temp < a{ println(temp) } println(temp) // 이 문장은 에러를 뱉는다. (if문 밖)
-
- 다른언어와 다른점
-
switch문
-
다른언어와 다른 점
-
switch 뒤에 변수나 expression이 없을 수 있다. 이 경우 무조건
true
라 생각하고 첫 번째 case를 검사하게 된다.- 예를 들어 학점을 반환하는 case를 만든다고 하자.
func getGrade(score int){ switch { case score >= 90: println("A") case score >= 80: println("B") case score >= 70: println("C") default: println("재수강") } }
- 또 다른 예시로 타입을 검사하는 switch도 만들 수 있다.
switch v.(type){ case int: println("int") case bool: println("bool") case string: println("string") default: println("안농") }
- 예를 들어 학점을 반환하는 case를 만든다고 하자.
-
case 문에 expression을 쓸 수 있다.(다른 언어는 일반적으로 리터럴 값을 가진다)
- break문을 쓰지 않아도 다음 case로 가지 않는다.
- 변수의 TYPE에 따라서 case로 분기할 수 있다.
-
-
반복문
-
for문
-
반복문은 for 하나밖에 없다.
package main func main(){ var sum int for i:=1; i <=10; i++ { sum += i } }
- 초기값과 증감식을 생략하고 쓸 수 있는데, while처럼 쓰는것을 의미한다.
func main(){ var n int for n<100{ n += 1 } }
-
for range
- foreach와 비슷하다. 아래 예시는 python의 in enumerate와 비슷하다.
func main(){ names := []string{"허원량","허투량","허쓰리량"} for index,name := range names{ println(index,name) } }
- break, continue, goto
- break와 continue, goto 또한 다른언어처럼 비슷하게 사용한다. 하지만 경우에 따라 break 레이블을 사용할 수 있는데, 현재 루프를 빠져나와 지정된 레이블에 대한 문장을 실행시킨다.
func main(){ var a int PRINT: for i:=0; i<9; i++{ a += i if a==6{ break PRINT } } println("PRINT 6") }
- break와 continue, goto 또한 다른언어처럼 비슷하게 사용한다. 하지만 경우에 따라 break 레이블을 사용할 수 있는데, 현재 루프를 빠져나와 지정된 레이블에 대한 문장을 실행시킨다.
-
Leave a comment