이 글의 내용은 자바의 정석 을 기반으로 합니다.
이 카테고리는 마인크래프트 플러그인 개발에 포커스를 둡니다.
Java의 정석 | 남궁성 - 교보문고 (kyobobook.co.kr)
Java의 정석 | 남궁성 - 교보문고
Java의 정석 | 자바의 기초부터 실전활용까지 모두 담다!자바의 기초부터 객제지향개념을 넘어 실전활용까지 수록한『Java의 정석』. 저자의 오랜 실무경험과 강의한 내용으로 구성되어 자바를
product.kyobobook.co.kr
제어문이란 ?
조건에 따라 문장을 건너뛰고 때로는 같은 문장을 반복해서 수행해야할 때
프로그램의 흐름을 바꾸는 역할을 한느 문장들을 제어문(control statement) 라고 한다.
조건문이란 ?
조건식과 문장을 포함하는 블럭 으로 구성되어 있으며
조건식의 연산결과에 따라 실행할 문장이 달라져서 프로그램의 실행흐름을 변경할 수 있다.
// if 문
if (조건식) {
// 조건식이 참(true) 일 때 수행될 문장들을 적는다.
}
블록 안에는 보통 여러 문장을 넣지만, 한 문장만 넣거나 아무런 문장도 넣지 않을 수 있다.
만일 블럭 내의 문장이 하나뿐 일 때는 아래와 같이 괄호를 생략할 수 있다.
// 조건문 한 줄
if (score > 60)
System.out.println("합격입니다."); // 문장1. if 문에 속한 문장
System.out.println("축하드립니다."); // 문장2. if문에 속한 문장이 아님
if 문의 변형인 if-else 문의 구조는 다음과 같다.
'else' 의 뜻이 '그 밖의 다른' 이므로 조건식의 결과가 참이 아닐 때 else 블럭의 문장을 수행하라는 뜻이다.
// if-else 문
if (조건식) {
// 조건식이 참일 때 수행될 문장들을 적는다.
} else {
// 조건식이 거짓일 때 수행될 문장들을 적는다.
}
if-else 문의 경우 두 가지 경우 중 하나가 수행되는 구조인데
처리해야할 경우의 수가 셋 이상일 경우에는 여러 개의 조건식을 쓸 수 있는 if-else if 문을 사용하면 된다.
// if-else if 문
if (조건식1) {
// 조건식1 이 참일 때 수행될 문장들을 적는다.
} else if (조건식2) {
// 조건식2 이 참일 대 수행될 문장들을 적는다.
} else {
// 위 조건식이 거짓일 때 수행될 문장들을 적는다.
}
첫 번째 조건식부터 순서대로 평가해서 결과가 참인 조건식을 만나면
해당 블록만 수행하고 if-else if 문 전체를 벗어난다.
만일 결과가 참인 조건식이 하나도 없으면, 마지막에 있는 else 블럭의 문장들이 수행된다.
else 블럭은 생략이 가능하다. else 블럭이 생략되었을 때는 if-else if 문의 어떤 블럭도 수행되지 않을 수 있다.
switch 문
switch 문은 단 하나의 조건식으로 많은 경우의 수를 처리할 수 있고, 표현도 간결하므로 알아보기 쉽다.
처리할 경우의 수가 많은 경우에는 if 문 보다 switch 문을 작성하는 것이 좋다.
// switch 문
swtch (조건식) {
case 값1:
// 조건식의 결과가 값1과 같을 경우 수행될 문장들
...
break;
case 값2:
// 조건식의 결과가 값2와 같을 경우 수행될 문장들
...
break;
default:
// 조건식읠 결과가 일치하는 case 문이 없을 때 수행될 문장들
...
}
switch 문은 조건식을 먼저 계산한 다음 그 결과와 일치하는 case 문으로 이동한다.
이동한 case 문 아래에 있는 문장들을 수행하며 break 문을 만나면 전체 switch 문을 빠져나가게 된다.
만일 조건식의 결과와 일치하는 case 문이 하나도 없는 경우에는 default 문으로 이동한다.
default 문은 if 문의 else 블럭과 같은 역할을 한다고 보면 이해가 쉬울 것이다.
default 문의 위치는 어디라도 상관없으나 보통 마지막에 놓기 때문에 break 문을 쓰지 않아도 된다.
switch 문에서 break 문은 각 case 문의 영역을 구분하는 역할을 하는데
만일 break 문을 생략하면 case 문 사이의 구분이 없어지므로
다른 break 문을 만나거나 switch 문 블럭의 끝을 만날 때까지 나오는 모든 문장들을 수행한다.
이러한 이유로 각 case 문의 마지막에 break 문을 빼먹는 실수를 하지 않도록 주의해야 한다.
// switch 문의 제약 조건
switch 문의 제약 조건
1. switch 문의 조건식 결과는 정수 또는 문자열이여야 한다.
2. case 문의 값은 정수 상수만 가능하며, 중복되지 않아야 한다.
반복문이란 ?
어떤 작업이 반복적으로 수행되도록 할 때 사용되며, 반복문의 종류로는 for 문과 while 문, do-while 문이 있다.
반복문은 주어진 조건을 만족하는 동안 주어진 문장들을 반복적으로 수행하므로 조건식을 포함하며
if 문과 마찬가지로 조건식의 결과가 true 이면 참이고 false 면 거짓으로 간주된다.
// for 문의 구조와 수행순서
for (초기화; 조건식; 중감식) {
// 조건식이 참일 때 수행될 문장들을 적는다.
}
초기화 수행
조건식 -> 수행될 문장 -> 증감식 반복
조건식이 거짓이 되면, for 문 이탈
향상된 for 문 (enhanced for statement)
JDK 1.5 부터 배열과 컬렉션에 저장된 요소에 접근할 때 기존보다 편리한 방법으로 처리할 수 있도록 새로운 문법이 추가되었다.
// 향상된 for 문
for(타입 변수명 : 배열 또는 컬렉션) {
// 반복할 문장
}
// while 문
while (조건식) {
// 조건식의 연산결과가 참(true) 인 동안, 반복될 문장들을 적는다.
}
while 문은 조건문이 '참(true)인 동안', 즉 조건식이 거짓이 될 때까지 블럭 내의 문장을 반복한다.
while 문은 조먼저 조건을 평가해서 조건식이 거짓이면 문장 전체를 벗어나고
참이면 블럭 내의 문장을 수행하고 다시 조건식으로 돌아간다.
조건식이 거짓일 될 때까지 이 과정이 계속 반복된다.
// do-while 문
do {
// 조건식의 연산결과가 참일 때 수행될 문장들을 적는다.
} while (조건식);
do-while 문은 while 문의 변형으로 기본적인 구조는 while 문과 같으나 조건식과 블럭의 순서를 바꿔놓은 것이다.
while 문과 반대로 블럭을 먼저 수행한 후에 조건식을 평가한다.
while 문은 조건식의 결과에 따라 블럭이 한 번도 수행되지 않을 수 있지만
do-while 문은 최소한 한 번은 수행될 것을 보장한다.
break 문
반복문에서도 break 문을 사용할 수 있는데, switch 문에서 그랬던 것처럼
break 문은 자신이 포함된 가장 가까운 반복문을 벗어난다.
주로 if 문과 함께 사용되어 특정 조건을 만족하면 반복문을 벗어나도록 한다.
continue 문
continue 문은 반복문 내에서만 사용도리 수 있으며
반복문이 진행되는 도중에 continue 문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.
for 문의 경우 증감식으로 이동하며, while 문과 do-while 문의 경우 조건식으로 이동한다.
continue 문은 반복문 전체를 벗어나지 않고 다음 반복을 계속 수행한다는 점이 break 문과 다르다.
주로 if 문과 함께 사용되어 특정 조건을 만족하는 경우에 continue 문 이후의 문장들을 수행하지 않고
다음 반복으로 넘어가서 계속 진행하도록 한다.
전체 반복 중에 특정조건을 만족하는 경우를 제외하고자 할 때 유용하다.
'자바의 정석' 카테고리의 다른 글
6. 자바의 정석 6장 - 객체지향 프로그래밍 I (0) | 2024.08.26 |
---|---|
5. 자바의 정석 5장 - 배열(array) (0) | 2024.08.24 |
3. 자바의 정석 3장 - 연산자(Operator) (0) | 2024.08.20 |
2. 자바의 정석 2장 - 변수(variable) (0) | 2024.08.20 |
1. 자바의 정석 1장 - 자바를 시작하기 전에 (0) | 2024.08.19 |