1:16 구간에서 질문
전 강의에서는
for i := 0; i<5; i++ {
fmt.Println(i)
}
이런 식의 코드를 짰습니다.
그래서 0부터 시작해 증감식을 통해 4에서 끝나는 것을 알 수 있었습니다.
이번 강의에서는
a := 1
for a <= 2 {
fmt.Println(a)
}
였습니다.
여기서 알고 싶은 것은 '변수의 위치'와 '왜 무한적으로 1이 생성되는 가' 입니다.
a := 1 이라고 선언을 한다고 하셨는데 전 강의에서의 i := 0 은 for 다음에 type되었지만,
지금 강의에서 a := 1 은 for 이전에 type되어있는데
그 이유를 알고 싶고
1은 2보다 작기 때문에 2에 도달할 일이 없다 해서
왜 1이 무한적으로 출력이 되는 것인지 알고 싶습니다.
(증감식이 없어서 그런건가요?)
Answer 1
0
안녕하세요 수강자님!
두가지 질문에 대한 답변 드리겠습니다
1. 변수의 위치
변수의 위치가 두 가지가 다른 것은, 다양한 경우를 보여드리기 위함입니다.
만약, for i := 0; i<5; i++ 이와 같이 작성한다면 이해하신 바와 같이 변수를 선언함과 동시에 반복문이 돌게 됩니다. 그래서 증감식을 통해서 진행을 하게 됩니다.
만약, a := 1
for a <= 2 {
fmt.Println(a)
}
이렇게 선언을 하게 된다면, 변수는 반복문 바깥에 존재하게 되고 변수를 다르게 활용할 수 있는 여지가 있습니다 a라는 변수를 반복문 뿐만 아니라 조건문 등 다른 경우에도 쓸 수 있습니다.
조건문을 예로 들자면
a := 1
if a == 2 {
for a <= 2 {
fmt.Println(a)
}
}
이렇게도 쓸 수 있는 것이지요! 변수를 선언하지 않고 반복문을 사용할 경우 다양한 케이스를 만들어낼 수 있습니다.
2. 왜 무한적으로 1이 생성되는 가
이에 대한 답변은 이해하신바와 같이 간단합니다.
증감식이 없기 때문에 a의 값이 항상 언제나 2보다 작습니다. a라는 변수는 1로 선언을 해줬고, 어떠한 변화도 주지 않았기 때문에 코드가 끝날때까지 계속 1로 존재합니다. 하지만 반복문의 조건은
"a가 2보다 작을 경우 반복문 안의 내용을 실행하라" 라고 말하고 있기 때문에 항상 조건을 만족하게게 되어서 무한히 a라는 변수를 출력해주는 것이죠!
이해가 되셨으면 좋겠습니다 :) 궁금한 점이 있으시다면 언제든 추가질문 부탁드립니다!
gRPC 실무에서 질문
0
35
2
교안에 사용되는 app.js 파일은 어디서 받을수 있을까요?
0
42
1
소스 download
0
43
2
프로젝트 구조 관련 질문이 있습니다.
0
48
1
커넥션 min, max 설정과 관련하여
0
50
1
명령어 오류가 있으신 분들 저는 이렇게 해결했어요!
0
70
1
response 함수에 대해
0
43
1
grpc 도입을 고려할만한 케이스
0
70
2
고 인터페이스 관련
0
69
2
Join함수 사용이유가 궁금합니다
0
54
1
Streaming 중인 서비스에서 모든 파드에 broadcast하는 방법
0
118
3
vscode 설정
0
126
2
upsert
0
146
2
프론트쪽이 리액트로 되어있는데요..
0
123
2
오늘 강의 듣기 시작했는데요!
0
132
2
RunInit() 관련 질문
0
180
5
소켓 연결과 http
0
154
2
안녕하세요 혹시 강의하실때 진행하시는 몽고디비 버전은 몇인가요?
0
132
2
실무에서 주로 사용하는 compass의 다양한 기능 어디에 들어가야하나요 ?
0
108
2
에러 메시지 대응 방법
0
281
1
채널과 배열은 전혀 다른 건가요?
1
347
1
어떻게 실행된것인지...
1
268
2
질문 여러가지
1
335
1
undeclared name
1
583
2

