집중 과정 파트 VIII 이동: if, switch 및 for
11948 단어 goprogrammingbeginners
만약에
프로그래밍에서 종종 우리는 특정 문장을 조건부로 실행해야 합니다. 대부분의 프로그래밍 언어에는
if
라는 아이디어가 있습니다.var x = 10
if x > 5 {
fmt.Println("x is greater than 5")
}
이 예에서는 값이 10인 변수
x
가 있습니다. 그런 다음 x
가 5보다 큰지 확인합니다. 그렇다면 무언가를 인쇄합니다. 그렇지 않으면 우리는 아무것도 하지 않습니다.이면 - 그렇지 않으면 - 그렇지 않으면
종종 우리는 하나 이상의 관련 항목을 확인합니다. FizzBuzz 문제의 예를 들어보겠습니다. 임의의 숫자 n에 대해 n이 3으로 나눌 수 있으면
Fizz
, n이 5로 나눌 수 있으면 Buzz
, n이 3과 5로 나눌 수 있으면 FizzBuzz
, 3으로 나눌 수 없으면 n을 인쇄하고 싶습니다. 또는 5.if n%15 == 0 {
fmt.Println("FizzBuzz")
} else if (n % 5) == 0 {
fmt.Println("Buzz")
} else if (n % 3) == 0 {
fmt.Println("Fizz")
} else {
fmt.Println(n)
}
원하는 만큼 if-else를 연결할 수 있습니다. else는 조건 연산자가 필요 없는 특별한 경우입니다. if - else if 조건이 일치하지 않는 경우와 일치합니다.
함수에서 else 분기를 건너뛰는 것은 거의 항상 가능합니다. 예를 들어
func isEven(n int) bool {
if n%2 == 1 {
return false
}
return true
}
else 블록을 사용하는 대신 기본 케이스를 반환할 수 있습니다.
진술과 함께라면
때때로 우리는 방금 생성한 변수의 일부 조건을 확인하고 조건에 대한 변수만 필요합니다. 예제는 이것을 좀 더 명확하게 하는 데 도움이 될 수 있습니다.
func minRand(min int) int {
rand.Seed(time.Now().UnixNano())
if v := rand.Int(); v > min {
return v
}
return min
}
난수
v
가 있고 v가 min
보다 크면 v
, 그렇지 않으면 min
를 반환합니다. if 조건 외부에서 v
에 액세스할 필요가 없습니다. 이것은 가독성과 변수 이름 지정에 도움이 됩니다. 이동 중에 다른 유형의 변수를 재정의할 수 없습니다. 동일한 범위의 모든 변수가 있는 큰 함수에서는 문제가 발생할 수 있습니다.을 위한
프로그래밍에서 우리는 때때로 무언가를 여러 번 수행해야 합니다. 루프를 사용하여 이를 달성합니다. Go는 반복을 위한 단 하나의 구조를 가지고 있습니다.
for
키워드입니다. 그러나 for
는 다른 언어에서처럼 do-while
, while
와 같은 다른 것이 필요하지 않은 go에서 꽤 다재다능합니다.의 해부학
일반적으로
for
루프는 다음과 같은 구조를 가지고 있습니다.for i := 0; i < 100; i++ {
}
루프 불변을 초기화하는 초기화가 있습니다. 그런 다음 루프를 종료하는 데 사용되는 조건이 있고 각 루프 반복 후에 실행되는 변경 사항이 있습니다.
이 세 가지는 모두 선택 사항이며 필요에 따라 사용하거나 생략할 수 있습니다.
for i := 0; i < 5; i++ {
fmt.Println(i)
}
for i := 0; ; {
if i >= 5 {
break
}
fmt.Println(i)
i++
}
i := 0
for i < 5 {
fmt.Println(i)
i++
}
i = 0
for ; ; i++ {
if i >= 5 {
break
}
fmt.Println(i)
}
for i := 0; i < 5; {
fmt.Println(i)
i++
}
i = 0
for ; i < 5; i++ {
fmt.Println(i)
}
for i := 0; ; i++ {
if i >= 5 {
break
}
fmt.Println(i)
}
i = 0
for {
if i >= 5 {
break
}
fmt.Println(i)
i++
}
이들은 모두 단일 불변이 있는 for 루프의 가능한 조합입니다. 이 모든 for 루프는 똑같은 일을 합니다.
부서지다
for
실행의 어느 지점에서나 break
문을 사용하여 가장 가까운 for
루프에서 벗어날 수 있습니다.루프에 대한 다중 불변
두 개의 변수가 있는 for 루프도 사용할 수 있습니다.
for i, j := 0, 10; i != j; i, j = i+1, j-1 {
fmt.Println(i, j)
}
기본 구조는 동일합니다.
i
및 j
초기화하는 init가 있습니다. 조건을 chechi != j
한 다음 증가i
및 감소j
합니다.영원히
종료 조건 없이 for 루프를 실행하면 for 루프를 영원히 실행합니다. 프로세스를 무기한 실행하고 싶을 때가 있습니다.
for{
// do work indefinitely
}
예를 들어 net/http의 소스 코드를 보면 서버에 대한 새로운 연결을 기다리는 무한 for 루프의 예를 볼 수 있습니다.
다음 단계
이것은 바둑 단기집중과정 시리즈의 8부입니다.
Reference
이 문제에 관하여(집중 과정 파트 VIII 이동: if, switch 및 for), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/moficodes/go-crash-course-part-viii-if-switch-and-for-1g5j텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)