안녕하세요. 코딩을 배우고 있는 Skylar(Lar) 입니다.
코딩에 대해 배운 내용을 정리하는 블로그를 운영하고 있습니다.
잘못된 정보에 대한 수정은 언제나 환영입니다.
자바에서 일부 조건에서만 실행하거나, 반복하고 싶은 문장이 있을 때가 있다. 예를 들어, 학생 100명의 키를 입력하고 150, 160, 170 등 키에 따라 학생을 분류하고 싶은 경우에 학생 100명의 코드를 전부 입력하기는 어렵다. 이 경우에 사용하는 것이 제어문이다. 조건문을 이용해 학생의 분류 기준을 if 문에 넣고, 반복문을 이용해 학생 100명의 키를 입력 받는 것이다. 입력 받는 것은 Scanner 에서 따로 다룰 예정이다.
제어문
제어문은 프로그램의 흐름을 제어한다.
1) 조건문
조건을 따져서 실행 여부를 결정힌다.
1. if 문
조건이 true 면 if 블록을 실행하고 false 면 실행하지 않는다.
if(조건){ //이 조건을 만족하면
실행문; // 실행문 블록 실행
}
2. if - else 문
if 조건을 만족하면 If 블록을 실행, 만족하지 않으면 else 블록을 실행한다.
if (조건){ //이 조건이 맞으면
실행문; // if 실행문을 실행
} else { //조건이 틀리면
실행문; // else 실행문을 실행
}
3. if-else if - else 조건문
조건을 여러 개 설정하고 싶은 경우 if - else if - else 문장을 사용한다. 조건에 맞을 경우 해당 조건의 실행문을 실행한다.
if (조건 1) {
조건 1 실행문;
} else if (조건 2) {
조건 2 실행문;
} else if (조건 3) {
조건 3 실행문;
} else if (조건 4) {
조건 4 실행문;
} else if (조건 5) {
조건 5 실행문;
} else {
실행문;
}
4. switch 문
케이스에 따라 해당 문장을 실행해준다. 실행문을 실행시킨 후에는 블록을 빠져나가야 하므로 꼭 break 문을 넣어줘야 한다.
switch (비교대상) {
case 1 :
실행문;
break; //블록 빠져나감
case 1 :
실행문;
break; //블록 빠져나감
case 1 :
실행문;
break; //블록 빠져나감
case 1 :
실행문;
break; //블록 빠져나감
default :
실행문;
}
2) 반복문
반복문에는 for문과 while문이 있다.
for 문은 횟수가 정해져 있을 때 사용한다.
while 문은 횟수가 가변일 때 (정해지지 않았을 때) 사용한다.
1. for 문
시작값을 지정하고 1씩 증가/ 감소를 통해 원하는 조건에 도달할 때까지 반복한다.
for (시작값; 반복조건; 증감연산) {
실행문;
}
int i;
for (i=0;i<10;i++) {
System.out.print(i);
}
즉, 시작값은 0이고 9까지 i를 하나씩 보여주는 결과를 나타낸다.
이 프로그램을 돌리면, 0 1 2 3 4 5 6 7 8 9 를 보여준다.
2. 2중 루프
그럼 만약 아래와 같은 문자를 출력하고 싶으면 어떻게 해야할까? for 문을 두번 동시에 사용하는 2중 루프를 사용하면 된다.
###
###
int i,j;
for ( i = 0; i < 2; i++) {
for ( j = 0; j < 3; j++){
System.out.print("#");
}
System.out.println();
}
안쪽에 있는 for 문은 ### 을 출력하고, 바깥쪽의 for 문은 이것을 두 줄로 만들어준다.
쉽게 설명하자면 바깥쪽의 i가 0일 때, 안쪽의 j가 0,1,2 총 3번을 도는 것이다. 다시 바깥쪽의 i가 1일 때, 안쪽의 j가 0,1,2 총 3번 도는 것이다. 이러한 과정을 거치면
###
###
위와 같은 문자열이 출력된다.
3. 무한루프
그렇다면 i가 조건을 항상 만족한다면 어떻게 될까? 예를 들어, 시작값이 1인데 반복조건이 양수인 경우 말이다.
이 경우에는 루프가 끝없이 돌게 된다. 이것을 무한루프라고 한다.
for (i=1; i>0; i++) {
System.out.println("무한반복");
}
for (;;) {
System.out.println("무한반복");
}
자바 무한루프 실행 끄는 법
무한루프를 실수로 실행시킨다면 당황하지 말고 Console 창의 빨간색 Terminate 버튼을 눌러주면 된다.
4. while 문
while (조건) {
실행문;
}
아래 문장은 어떠한 결과값을 도출할까?
int i = 1;
while ( i < 5 ) {
System.out.println(i);
i++;
}
i 는 1부터 시작한다. while 문의 조건은 i 가 4까지일 때 실행된다. 우선 i가 1일 때 while 문을 만족하니 1이 출력된다.
i ++ 는 어떤 역할을 할까? 이 부분은 단항 연산자에서 다룬 바 있다. i 를 1씩 증가시키는 것이다. 그러면 i는 1을 출력한 이후에 1 증가해 2가 되어 빠져나온다. 그럼 이제 i의 값은 2가 된다. 또 조건을 만족해주니 while 문의 실행문을 실행시켜준다. 이 과정은 i 가 조건을 만족하지 않는 5가 될 때 끝이 난다.
5. do - while 문
do - while 문은 일단 do 의 실행문을 실행한 후 while 문을 따지는 것이다.
do {
실행문;
} while (조건);
3) 기타 제어문
a. break 문
루프나 블록을 빠져나간다.
b. continue 문
루프를 진행한다.
c. return 문
현재 메서드를 종료한다.