[JAVA] 제어문

OneTwo·2022년 7월 28일

Java

목록 보기
4/7
post-thumbnail

Ⅰ. 선택 제어문

선택 제어문은 문법 구조에 따라 다음과 같이 나뉜다.

  1. if 단일 구문

형식

if (조건문) {
    실행문;      //조건문이 참일 때만 실행
}

if 이후에 오는 괄호안의 조건식이 true일때만 중괄호 안의 실행문이 실행된다.

위 예시의 23항과 같이 실행구문이 1줄인 경우에는 중괄호를 생략하면
컴파일러가 자동으로 중괄호를 삽입해준다.

  2. if-else 구문

형식

if (조건문) {
   실행문;     // 조건문이 참일때만 실행
}
else {
   실행문;     //조건문이 거짓일때만 실행
}

if-else구문은 조건식 1개와 중괄호가 2개 있는 형태로 if구문의 조건식이
참일땐 if구문의 실행문만 실행되며
거짓일때는 else구문의 실행문만 실행된다.

모든 조건식은 true 또는 false이므로 둘중에 하나는 무조건 실행되며,
둘중에 하나만 실행된다.

  3. if -else if - else 구문

형식

if (조건문1) {
   실행문;
}
else if (조건문2) {
   실행문;
}
else if (조건문2) {
   실행문;
}
...
...
else if (조건문N) {
   실행문;
}
else {
   실행문;
}

else if구문은 개수 상관없이 추가가 가능하며 if구문 처럼 조건문과 같이 작성을 해줘야 한다.
조건문을 검사할때 항상 위에서 아래로 검사를 수행하며 조건문이 true인 부분을 만나면 그 즉시 실행문을 실행하고 if문을 탈출한다.
조건문이 true인 부분을 만나면 그 구문의 실행문을 실행하고 밑부분의 조건문은 검사하지 않는다.
즉, 조건문이 처음으로 참이 되는 블록 하나만 실행된다.

위의 예에서 13번째 항의 조건문과 10번째 항의 조건문의 순서를 바꾼다면
score >= 70 을 만족하여 C가 출력될 것이다.
이렇게 우리의 예상과는 다른 결과가 출력되는 것을 막기위해선 순서에 유의하여 코드를 작성해야 한다.

순서에 관계없이 항상 같은 결과가 나오기를 원한다면 조건문을 다음과 같이 작성해주면 된다.

여기서 주의해야 할 점은 70 <= score < 80 이런식으로 작성하면 안되고
반드시 분리하여 논리 연산자로 연결하여
score < 80 && score >= 70 이런식으로 작성해줘야 한다.

  4. switch - case문

형식

switch (점프 위치 변수) {
case 위칫값 1:
    실행문;
case 위칫값 2:
    실행문;
case 위치값3 :
    실행문;
...
...
case 위치값 N:
    실행문;
default:
    실행문;
}

switch - case문은 점프 위치 변숫값에 따라 특정 case로 이동해 구문을 실행하는 선택 제어문이다.
일치하는 구문이 없을때는 default구문으로 점프를 하는데 default구문은 생략이 가능하다.

switch-case구문은 if문과는 달리 위치 변숫값과 일치하는 case로 이동한 후 아래로 차례대로 모든 구문을 수행한다.

이와 달리 하나의 결과만을 실행하기 위해서는 break 키워드를 사용해주면 된다.
break 키워드는 뒤에서 continue 키워드와 함께 설명한다.

중복되는 결과를 출력하는 case구문이 많을때는 코드의 간결성을 위해
하나의 실행문에 여러 개의 case를 지정하는 것도 가능하다.

Ⅱ. 반복제어문

  1. for 반복 제어문

형식

for (초기식; 조건식; 증감식) {
   실행문;
}

for반복문은 조건식이 참일 동안 실행문이 반복된다.

  • 초기식 : for문이 시작될 때 단 한번만 실행된다. 주로 초기화할때 사용한다.

  • 조건식 : 조건식이 true일 동안 실행 구문을 계속 반복한다. 조건식이 false가 나오면 for문을 빠져나간다.

  • 증감식 : for문의 실행 구문이 모두 수행될때마다 다음 반복을 위해 호출된다.

   2. while 반복 제어문

형식

초기식;
while (조건문) {
   실행문;
   증감식;
}

while문은 조건문을 검사하고 조건문이 true이면 실행문을 실행시키고
조건문이 false가 되면 그 즉시 while문을 탈출한다.
증감식이나 조건문에 따라서 무한루프 구문을 작성 할 수도 있다.

  3. do- while 반복 제어문

형식

초기식;
do{
   실행문;
   증감식;
} while(조건식);

do-while문과 while문의 차이점은 단 한가지 있는데
do-while문의 경우는 일단 중괄호안의 실행문을 실행시키고 조건식을 확인하지만
while문의 경우 조건식을 확인하고 조건식이 true면 실행문을 실행시킨다.
즉, do-while문의 최소 반복 횟수는 1회지만 while문의 최소 반복 횟수는 0회이다.
이 의외의 나머지 특징들은 모두 동일하다.

3. 제어키워드

1. break 제어 키워드

break는 if문을 제외한 가장 가까운 중괄호를 탈출하는 제어 키워드이다.
반복문 혹은 switch 문에서 break문을 만난다면
그 즉시 나머지 실행문을 실행시키지 않고 가장 가까운 반복문이나 switch문을 탈출한다.

반복문이 중복되어있는 다중 반복문에서는 break+Label문법으로 모든 반복문을 탈출할수 있다.
break 다음에 레이블을 지정하면 다중 반복문을 탈출 할 수 있다.
레이블 명은 개발자가 임의로 지을 수 있다.

  • switch 문과 while문에서 break를 이용한 탈출

  • break + Label을 이용한 다중 반복문 탈출

2. continue 제어 키워드

continue제어 키워드는 반복 제어문의 닫힌 중괄호( } ) 역할을 하는 키워드이다.
반복문에서 continue 키워드를 만나면 실행 코드가 남아있더라도 증감식을 수행하거나 조건식을 검색한다.


continue문도 break문과 동일하게 continue + Label 문법을 사용하여 여러 반복문을 건너 뛸 수 있다.

참고자료

Do it! 자바 완전 정복

profile
매일 성장하는 개발자

0개의 댓글