조건문 반복문 예제 마지막 문제
각각 if의 매커니즘은 이해가 되는데요
i와 j가 한개씩 커지는게 break문 밑에 i++ j++때문인가요?
if가 연달아 있으니 순서가 헷깔려요
첫번째 if의 i구문따로 보고 두번째 if의 j구문 따로보고 마지막 if의 프린트를 따로 보면 이해가 되는데 전체적으로볼때
i++과 j++이 따로 밑에 있는게 이해가안되네요ㅠ그럼 동시에 계속 같이 커지고 있고 i는 i대로보고 j는 j대로 보면 되는가요?
답변 2
0
안녕하세요,
while 반복문 안에서 if는 모두 한 번씩은 수행됩니다. 다만 "참"이 아닌 경우에는 통과하는 것 뿐이죠.
말씀하신 대로 가장 아래 부분에 i++, j++가 있어서 각 변수에 1를 높인 값을 반영하고 다음 반복으로 넘어가는 것입니다.
while 반복문은 for문와 다르게 언제 탈출해야 하는 지가 반복문에 명시되어 있지 않고, 반복문 아래 블럭을 봐야 알 수 있습니다.
제 생각에 해당 문제가 헷갈리시는 이유는 봐야 할 변수가 너무 많아서 그렇습니다.
일단 i, j, count_i, count_j 4개의 변수는 무시하시고,
탈출 조건만 먼저 보겠습니다. 지금 탈출 조건은 위의 4개 변수가 아닌 value_i, value_j가 둘 다 0이 아니어야합니다.
둘 다 0이 아니려면 둘 다 다른 숫자가 들어가는 순간 탈출해서 나오겠죠?
이제 count_i, count_j 변수로 가봅시다.
이 변수는 i와 j가 하나씩 늘어나고 있는 와중에 i가 짝수인 경우에는 count_i가 늘어나고, j가 3의 배수인 경우에 count_j가 늘어납니다.
이 둘은 애초에 겹칠 수가 없습니다.
같이 하나씩 늘어나고 있는데 i는 짝수일 때 j도 짝수일 것이고, i가 3의 배수일 때는 j도 3의 배수입니다.
그냥 둘 다 같은 쌍둥이인데 해석하기 어렵게 만들기 위해 코드를 복잡하게 만들어둔 것 뿐입니다.
어쨌든, 코드를 전체적으로 다시 보자면
처음에는 둘 다 0, 0일 것이고 아래로 내려가면 1, 1로 바뀝니다. 계속 가다가 2, 2로 갑니다.
이 경우에는 i(첫 번째 숫자)가 2로 짝수가 되죠? 그러면 카운트가 되면서, count_i를 하나 올립니다.
이렇게 50까지 쭉 가다보면,
i가 5번째 짝수를 만났을 때 value_i를 세팅합니다.
그리고 j가 7번째 3의 배수를 만났을 때 value_j를 세팅합니다.
여기서가 중요합니다.
지금 출력값은 해당 수를 만났을 때 저장된 변수인 value_i, value_j를 출력합니다.
그 값은 i가 5번째 짝수를 만났을 때의 i고, j가 7번째 3의 배수를 만났을 때의 j이죠.
제 해설을 읽으시고 나서, 조금 어려움이 있으시다면
while문을 직접 A4용지에 숫자를 써가면서 해석해보기를 권장드립니다.
50까지 할 필요도 없습니다. 그냥 12까지만 해보세요. (3의 배수 4번째인)
탈출조건까지 하려면 21까지 세야하겠지만, value_i, value_j가 올라가는 것을 깨닫는 순간 별 것 아니라고 이해하실 겁니다.
그러면 전체적으로 코드가 어떻게 돌아가는지 이해하실 수 있을 것입니다.
이해에 도움이 되셨을까요?
0
안녕하세요, 인프런 AI 인턴입니다. 유림님.
질문해주신 조건문과 반복문 예제의 매커니즘에 대해 유사한 질문과 답변을 포함한 게시물이 있습니다. 해당 게시물을 참고하시면 많은 도움이 될 것 같습니다.
관련된 질문 URL:
- 8강 반복문+조건문 문제 풀이 예제 관련 질문
이 질문에서는 조건문과 반복문을 이해하는 데 필요한 추가 설명과 예제가 포함되어 있습니다.
요약:
질문하신 내용은 조건문과 반복문에서 i++과 j++의 작동 방식과 break 문에 대한 회로를 이해하는 데 도움이 됩니다. 간단히 설명드리자면:
- i++과 j++는 각각 반복문 한 번 실행 후 증가합니다.
- break 문은 현재 반복문을 완전히 종료시키며, 그 뒤에 있는 코드(i++과 j++)는 실행되지 않습니다.
- 출력문이 하나인 이유는 특정 조건이 실행되는 경우에만 출력되기 때문에 그렇습니다.
이런 개념들이 각 예제에서의 작동 방식을 이해하는 데 중요합니다.
유사한 질문 URL:
- 강의 중 이해가 안되어 질문드립니다.
이 질문에서는 조건문과 반복문을 확인하고 각 코드의 작동 방식을 이해하는 과정에서 발생하는 혼란을 다루고 있습니다.
이와 같이 관련된 예제와 설명을 참고하시면 유림님의 질문에 대한 이해가 크게 도움이 될 것이라 생각합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
0
i랑 j가 동시에 21이되었을때
Value-j값이 O이 였다가 21이되면서 프림트가 나오고 break문으로 다 나왔다고 생각하면되나요?
i++ j++모두 while문. 안에 있는거구요?
Break문 괄호 밖에 i++ j++이 있어서 여쭤봐요
26년2회 실기기출은 언제쯤...
0
50
2
이론 공부법 요약본 버전 업데이트 문의
0
35
2
정처기 필기 준비할때 이 이론을 다시 외워도 될까요?
0
57
2
조건 반복문 질문: for 문 ?
0
66
1
정처기 26-2회. 9번 질문드립니다!
0
85
1
이론 보면서 질문이 있습니다.
0
82
2
정보처리기사 실기 26년 2회 SRT 스케줄링 문제 단위 질문
0
93
2
유튜브(정보처리기사 실기 | 26년 2회 기출문제 코드 해설)
0
154
2
262 정처기 실기 C언어코딩
0
53
1
정보처리기사 262 실기 Hash(해시) 질문
0
85
2
static 변수 질문입니다.
0
66
2
파이썬 4강 질문입니다.
0
73
2
모의고사 1회 3번문제
0
95
3
41강 30:10
0
69
2
이론 공부법 질문 있습니다.
0
95
2
부모의 생성자 관련 질문
0
70
2
시험지 문제에 필기해도 되나요?
0
92
3
41강 11:23
0
61
2
4강파이썬 질문입니다
0
58
2
try-catch 핸들러명
0
71
2
36강 3:48
0
70
2
35강 18:27
0
69
2
자식 코드 내 super() 생략
0
63
2
출력질문
0
81
2





