반복문(for, while, do-while)의 모든 것!
안녕하세요.
오늘은 반복문(for문과 while문, do-while문)에 대해 알아보겠습니다.
for문
다음은 for문의 작성 방법입니다.
int i=10은 선언
i<100 은 반복하기 위한 조건
i++ 은 +1씩 더하겠다는 것을 의미합니다.
for문이란 for(~~;~~;~~;){ } 블록 안에서 조건 범위만큼 계속 반복하겠다는 것입니다.
for(int i=10; i<100; i++) 을 다시 정리하면
i를 int형 정수로 10으로 선언하고, 100미만(99)까지 반복을 하면서 i를 1씩 더하겠다.
i가 100이 되면, for문을 종료하겠다는 것을 의미합니다. (i가 100이되면서 종료)
메모리구조의 stack영역을 보면, i는 for문이 끝나는 동시와 사라지기 때문에 i를 for문 바깥에선 사용할 수 없습니다. (이것은 모든 로컬변수도 마찬가지)
대신, i라는 영역이 생겨서 그곳에 100을 저장합니다.
다음 구구단 코드를 살펴보시죠.
1단은 생략하고 2단부터 9단까지 출력하도록 구현했습니다.
for문은 중첩해서 사용이 가능합니다.
m=2일 때 ***2단***을 먼저 출력합니다.
그리고 m=2인 상태에서 n을 1~9까지 반복해서 출력합니다.
그래서 2단일 때 1~9를 곱한 것을 출력하는 것을 9단까지 반복합니다.
출력화면은 2단 부분만 찍은 것으로, 결과화면은 직접 확인하시길 바랍니다.
while문
다음은 while문의 작성 방법입니다.
while문은 괄호 안에 조건을 넣어줍니다.
while은 괄호 안이 false값이 될 때까지 계속 반복을 합니다.
run을 true라고 선언했으므로 반복하겠단 의미겠죠?
keyCode 13과 10 이 부분은 엔터를 의미하는데 이에 대해선 eventcode라고 검색하시면 나올 것입니다. (외울 필요 전혀 없고 엔터라는 것만 이해하시고 읽으시면 되겠습니다.)
이번엔 system.read( );가 무엇인지 살펴보도록하죠.
https://docs.oracle.com/javase/7/docs/api/에서 살펴보면(구글에서 java api doc 검색)
java.lang에서 read의 소유주 System 안에서 살펴볼 수 있습니다.
read는 int형으로 리턴한다고 나와있죠?
즉, 자판에서 친 값을 keycode에서 int형으로 읽는다는 뜻입니다.
keycode 49는 아까 말씀드린 eventcode에서 실제 1(증속), 50은 2(감속), 51은 3(중지)를 의미합니다.
중지할 때에는 while(run)에서 조건을 false라고 바꿔야한다고 했으니 run의 값을 true에서 false로 바꾸면 종료가 됩니다.
do-while문
다음은 do-while문의 작성 방법입니다.
while문과 비슷하지만 일단 do-while문은 말 그대로 do(일단 한번은 실행하겠다는 의미입니다.)
조건을 확인하기 전에 무조건 1번은 실행할 필요가 있을 때 사용합니다!
바깥쪽 반복문 종료
중첩 for문처럼 반복문을 중첩으로 사용할 떄 코드처럼 Outter를 놓고 원하는 곳에서 break Outter를 하면 반복문 전체를 종료할 수도 있습니다.
댓글 없음: