04-1.1(if문)~2.6(이름 붙은 반복문)
1.1 if문
만일(if) 조건식이 참(true)이면 괄호{} 안의 문장들을 수행하라.
if (조건식) { // 조건식이 참(true)일 때 수행할 문장들을 적는다. } |
조건식
if문에 사용되는 조건식은 일반적으로 비교연산자와 논리연산자로 구성된다.
블럭{}
괄호{}를 이용해서 여러 문장을 하나의 단위로 묶을 수 있는데, 이것을 '블럭'이라고 한다.
1.2 if-else문
if (조건식) { // 조건식이 참(true)일 때 수행할 문장들을 적는다. } else { // 조건식이 거짓(false)일 때 수행할 문장들을 적는다. } |
1.3 if-else if문
- 결과가 참인 조건식을 만날 때까지 첫 번째 조건식부터 순서대로 평가한다.
(첫 번째 조건식은 거짓이므로, 두 번째 조건식으로 넘어간다.) - 참인 조건식을 만나면, 해당 블럭{}의 문장들을 수행한다.
- if-else if문 전체를 빠져나온다.
1.4 중첩 if문
if문의 블럭 내에 또 다른 if문을 포함시키는 것이 가능한데 이것을 중첩 if문이라고 부르며 중첩의 횟수에는 거의 제한이 없다.
1.5 switch문
- 조건식을 계산한다.
- 조건식의 결과와 일치하는 case문으로 이동한다.
- 이후의 문장들을 수행한다.
- break문이나 switch문의 끝을 만나면 switch문 전체를 빠져나간다.
switch문의 제약조건
switch문의 제약조건
|
switch문의 중첩
if문처럼 switch문도 중첩이 가능하다.
2.1 for문
for문의 구조와 수행순서
for (초기화;조건식;증감식) { // 조건식이 참일 때 수행될 문장들을 적는다. } |
초기화
처음에 한번만 수행된다.
조건식
조건식의 값이 참이면 반복을 계속하고, 거짓이면 반복을 중단하고 for문을 벗어난다.
증감식
반복문을 제어하는 변수의 값을 증가 또는 감소시키는 식이다.
중첩 for문
if문처럼 중첩이 가능하고, 중첩의 횟수는 거의 제한이 없다.
향상된 for문(enhanced for statement)
JDK1.5부터 배열과 컬렉션에 저장된 요소에 접근할 때 기존보다 편리한 방법으로 처리할 수 있도록 for문의 새로운 문법이 추가되었다.
for ( 타입 변수명 : 배열 또는 컬렉션) { // 반복할 문장 } |
일반적인 for문과 달리 배열이나 컬렉션에 저장된 요소들을 읽어오는 용도로만 사용할 수 있다는 제약이 있음
2.2 while문
if문과 달리 while문은 조건식이 '참(true)인 동안', 즉 조건식이 거짓이 될 때가지 블럭{} 내의 문장을 반복한다.
while (조건식) { // 조건식의 연산결과가 참(true)인 동안, 반복될 문장들을 적는다. } |
while문의 조건식은 생략불가
for문과 달리 while문의 조건식은 생략할 수 없다.
while문의 조건식이 항상 참이 되도록 하려면 반드시 true를 넣어야 함.
2.3 do-while문
최소한 한번은 수행된다.
do { // 조건식의 연산결과가 참일 때 수행될 문장들을 적는다. } while (조건식); |
2.4 break문
반복문에서도 break문을 사용할 수 있는데, break문은 자신이 포함된 가장 가까운 반복문을 벗어난다.
2.5 continue문
continue문은 반복문 내에서만 사용될 수 있으며, 반복이 진행되는 도중에 continue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.
2.6 이름 붙은 반복문
중첩 반복문 앞에 이름을 붙이고 break문과 continue문에 이름을 지정해 줌으로써 하나 이상의 반복문을 벗어나거나 반복을 건너뛸 수 있다.
public class FlowEx33 {
public static void main(String[] args) {
Loop1:
for (int i = 2; i <= 9; i++) {
for (int j = 1; j <= 9; j++) {
if (j == 5)
break Loop1;
System.out.println(i + "*" + j + "=" + i * j);
}
System.out.println();
} // end of Loop1
}
}