인프런 커뮤니티 질문&답변

김다훈님의 프로필 이미지
김다훈

작성한 질문수

(2025) 일주일만에 합격하는 정보처리기사 실기

비트 연산자

22년 3회 문제 질문

해결된 질문

작성

·

95

0

1000043251.jpg반복문 돌리다가 궁금해진게 있어서 질문드립니다.다중 for문에서 저렇게 여러개의 변수가 중간에 껴있는 경우에 내부 for문을 한 사이클 돌고나면 외부 for문에서 ++해서 다음 사이클 돌릴 경우에 변수들이 다시 초기화가 되나요? 그러니까 n=6일 때 한 사이클을 돌리고 나니 s=6 , el=1 값이 이렇게 나왔는데, n=7, 8, 9.... 이렇게 그 다음 사이클로 갈 때마다 다시 s=0, el=0 부터 시작하는건지 아니면 값이 남아있는건지 궁금합니다.+해설을 보고 나서 완전수라는 걸 알았네요 ㅎㅎ

답변 1

0

주말코딩님의 프로필 이미지
주말코딩
지식공유자

값이 바뀌는 것이 아닌 경우에는 계속 초기화되는 것입니다.

초기화가 되는지 변하는지 그렇게 외우시면 안되고, 그냥 코드 그 자체를 보시면 됩니다.

예를 들어서 s=0을 봅시다.

지금 반복문은 n이 6부터 계속 하나씩 증가하는 형태입니다.

블록 전체를 끝내고 다시 첫번째 코드부터 실행하는데 s=0을 만나죠?

s라는 변수에 0을 할당하라는 이야기입니다.

el은 반복문 밖에서 0으로 시작한 다음에 안으로 들어왔습니다. 그래서 반복문 내에서는 0으로 초기화되지는 않습니다.

반복문은 for() { 블록 } 이 안에서만 영향을 미칩니다.



C언에 실제 시험보러가시면 반복문하고 조건문의 블록이 어디까지인지 잘 구분하셔야 합니다.

초기화가 되는지 안되는지는 해당 블록 내에서 어떤 일이 발생하는지로 판단하셔야합니다.

반복문 자체와는 상관없습니다. 온갖 방법으로 초기화하거나 바꿀 수 있으니까요.

그저 코드 한 줄 한 줄 씩 읽어가면서 따라가시는 게 제일 좋습니다.

김다훈님의 프로필 이미지
김다훈

작성한 질문수

질문하기