if k == 1 { // 같은 라인
println("One")
}
if k < 0
{ // 에러 발생
println("Hello, playground")
}
()
안 써도 된다. (써도 되긴 하는데, go에서 추구하는게 ()
없는 것 같다!)if val := i * 2; val < max {
println(val)
} else if val > min { // else if, else 블럭까지 변수 사용 可
println(val)
}
val++ // Scope 벗어나 에러
블럭 안에서 선언한 변수는 해당 블럭에서만 사용 가능
switch category {
case 1:
name = "Paper Book"
// break -- Go 컴파일러가 각 case에 자동으로 break를 달아준다.
case 2:
name = "eBook"
case 3, 4:
name = "Blog"
default:
name = "Other"
}
switch {
case score >= 90:
println("A")
case score >= 80:
println("B")
case score >= 70:
println("C")
case score >= 60:
println("D")
default:
println("No Hope")
}
switch v.(type) { // 변수 v의 타입 체크
case int:
println("int")
case bool:
println("bool")
case string:
println("string")
default:
println("unknown")
}
v.(type)
이거는 별도로 있는 문법이 아니라 switch에서만 사용하는 것!
변수의 타입 체크를 해주는 switch문을 제공한다고 이해하면 된다.
func main() {
check(2)
// 출력: 2 3 default
}
func check(val int) {
switch val {
case 1:
fmt.Println("1")
fallthrough
case 2:
fmt.Println("2")
fallthrough
case 3:
fmt.Println("3")
fallthrough
default:
fmt.Println("default")
}
}
fallthrough
: 다음 case문 실행
다음 case가 조건이 맞는 것이 아니더라도 무조건 실행한다~
for i := 1; i <= 100; i++ {
sum += i
}
()
쓰면 에러난다.for n < 100 {
n *= 2
}
while
대신 for 문을 사용한다.for {
println("Infinite loop")
}
names := []string{"홍길동", "이순신", "강감찬"}
for index, name := range names {
println(index, name)
}
for 인덱스,요소값 := range 컬렉션
package main
func main() {
var a = 1
for a < 15 {
if a == 5 {
a += a
continue // for루프 시작으로
}
a++
if a > 10 {
break //루프 빠져나옴
}
}
if a == 11 {
goto END //goto 사용예
}
println(a)
END:
println("End")
}
goto
!Loop:
// 요 사이에 코드 들어가면 안된다.
for a := 0; a < 3; a++ {
for b := 0; b < 3; b++ {
if b == 2 {
**break Loop**
}
fmt.Println(i, j)
}
}
0 0
0 1
👍