[GoLang 기초] 조건문과 반복문
조건문
if k == 1 { // 같은 라인
println("One")
}
- 조건문과 같은 라인에서 괄호를 열어준다.
if k < 0
{ // 에러 발생
println("Hello, playground")
}
if k == 1 { // 같은 라인
println("One")
}
if k < 0
{ // 에러 발생
println("Hello, playground")
}
- 다른 라인에 쓰면 에러난다. else if else도 마찬가지
()
안 써도 된다. (써도 되긴 하는데, go에서 추구하는게()
없는 것 같다!)- 조건은 boolean 식으로. 0,1 사용 불가 (↔ C++에서는 가능한 것과는 다름)
if val := i * 2; val < max {
println(val)
} else if val > min { // else if, else 블럭까지 변수 사용 可
println(val)
}
val++ // Scope 벗어나 에러
블럭 안에서 선언한 변수는 해당 블럭에서만 사용 가능
switch
expression 사용하는 경우
switch category {
case 1:
name = "Paper Book"
// break -- Go 컴파일러가 각 case에 자동으로 break를 달아준다.
case 2:
name = "eBook"
case 3, 4:
name = "Blog"
default:
name = "Other"
}
expression 없이도 사용 可
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")
}
type을 확인하는 switch
switch v.(type) { // 변수 v의 타입 체크
case int:
println("int")
case bool:
println("bool")
case string:
println("string")
default:
println("unknown")
}
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문을 제공한다고 이해하면 된다.
fallthrough
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
기본적인 형태
for i := 1; i <= 100; i++ {
sum += i
}
- for
()
쓰면 에러난다.
while
for n < 100 {
n *= 2
}
while
대신 for 문을 사용한다.
무한루프
for {
println("Infinite loop")
}
for range
names := []string{"홍길동", "이순신", "강감찬"}
for index, name := range names {
println(index, name)
}
for 인덱스,요소값 := range 컬렉션
- for each와 비슷한 문법
break, continue, goto
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
!
- 특정 지점으로 이동시킨다.
- 이런 문법은 지양한다고 알고 있는데 왜 굳이 go에서 만들었을까! 🤔
for 레이블
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
- break가 걸리면 Loop 레이블로 이동후 for문을 빠져나온다.
- 중첩된 for문을 break할 때 유용하다.
- 그냥 break하면 가장 가까운 for문을 빠져 나온다.
Author And Source
이 문제에 관하여([GoLang 기초] 조건문과 반복문), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://velog.io/@moonyoung/GoLang-기초-조건문과-반복문
저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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
!- 특정 지점으로 이동시킨다.
- 이런 문법은 지양한다고 알고 있는데 왜 굳이 go에서 만들었을까! 🤔
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
Author And Source
이 문제에 관하여([GoLang 기초] 조건문과 반복문), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@moonyoung/GoLang-기초-조건문과-반복문저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)