func main() {
sum := 0
for i int = 1; i < 10; i++ {
sum += i
}
}
// 무한루프
for { ... }
for 조건 { }
// for문을 while문 처럼 쓰기
count := 10
for count >= 0 { ... }
괄호 ( ) 는 쓰지 않음
중괄호 { } 는 필수!!!
if 문 사용법
if 조건문 { }
: 일반적인 방법. 바로 조건문 검사if statement; 조건문 { }
: 조건문 검사하기 전 statement 실행// 일반적인 방법
if x == 0 {
x += 10
}
// statement
if bonus := 10; x == 0 {
x += bonus
}
else문은 if문의 중괄호가 끝나는 부분에( } ) 선언해줘야 함
if x < 0 {
x += 1
} else {
x -= 1
}
if x < 0 {
x += 1
}
else {
x -= 1
}
switch문 사용법
var grade string
// 1. 일반적인 방법
switch score {
case 100:
grade = "A"
case 90:
grade = "B"
// case 문에 여러개 할당 가능 : 콤마(,)로 값 구문
case 80, 70:
grade = "C"
case 50, 70:
grade = "D"
default:
grade = "F"
}
// 2. switch 문에 표현식 작성 가능
switch newScore := score / 10; newScore {
case 10:
grade = "A"
case 9:
grade = "B"
case 8, 7:
grade = "C"
case 5, 7:
grade = "D"
default:
grade = "F"
}
// 3. swicth 문에 변수나 표현식 생략
switch {
case score == 100:
grade = "A"
case score >= 90:
grade = "B"
// 판별한 변수가 아닌 조건식으로 분기 가능
case 70 < score && score <= 80:
grade = "C"
case 50 < score && score <= 70:
grade = "D"
default:
grade = "F"
}
// 4. case 문에 표현식 작성
switch score {
case 10:
grade = "A"
case 9:
grade = "B"
case 8, 7:
grade = "C"
case 5, 7:
grade = "D"
default:
grade = "F"
}
위에서부터 차례대로 case 검사
case 값은 문자, 숫자, 조건식 모두 가능
하나의 케이스에 여러개 조건 할당할 수 있음
해당되는 case가 있으면 break 하지 않아도 자동으로 case 종료
fallthrough
추가import {
"fmt"
}
func get_grade(score int) string {
switch {
case score > 90:
grade = "A"
case score > 70:
grade = "B"
fallthrough
case score > 50:
grade = "C"
fallthrough
default:
grade = "F"
}
return grade
}
func main() {
fmt.Println(get_grade(100)) // 출력 : A
fmt.Println(get_grade(80)) // 출력 : F
// -> 두번째 case에 해당되지만 fallthrough가 있기 때문에 다음 case로 넘어감 ~ 마지막 default에서 걸림
}