Java 기초 (3)

.·2023년 5월 4일

조건문과 반복문

IF

if

if (조건식) {
조건식의 결과가 일 때 실행하고자 하는 문장;
}

if - else

if (조건식) {
조건식의 결과가 일 때 실행하고자 하는 문장;
} else {
조건식의 결과가 거짓일 때 실행하고자 하는 문장;
}

if - else if - else

if (조건식1) {
조건식1의 결과가 일 때 실행하고자 하는 문장;
} else if (조건식2) {
조건식2의 결과가 일 때 실행하고자 하는 문장;
} else {
조건식1의 결과도 거짓이고, 조건식2의 결과도 거짓일 때 실행하고자 하는 문장;
즉, 위의 어느 조건식에도 만족하지 않을 때 수행
}

  • 여러 개의 조건식을 포함한 조건식이다.
  • else if 가 여러번 사용될 수 있다.
  • 마지막 else 블럭은 생략이 가능하다.

중첩 if

if (조건식1) {
조건식1의 결과가 일 때 실행하고자 하는 문장;
if (조건식2) {
조건식1조건식 2의 결과가 모두 참일 때 실행하고자 하는 문장;
} else {
조건식1의 결과가 이고, 조건식2의 결과가 거짓일 때 실행하고자 하는 문장;
}
} else {
조건식1의 결과가 거짓일 때 실행하고자 하는 문장;
}

블럭 { }

'여러 문장을 하나로 묶어주는 것'이다.
만약 if 조건문에서 실행할 문장이 하나라면
if(조건식) 명령문; 이렇게 { } 가 생략될 수 있다.

조건식의 다양한 예

SWITCH

switch

switch (조건식) {
case 값1:
조건식의 결과가 값1과 같을 경우 수행할 문장;
break;
case 값2:
조건식의 결과가 값2와 같을 경우 수행할 문장;
break;
....
default:
조건식의 결과와 일치하는 case 문이 없을 때 수행할 문장;
}

  • 처리해야 하는 경우의 수가 많을 때 유용한 조건문이다.
  • break; 를 작성해 주지 않으면 switch 문 끝까지 실행된다.
  • default 문은 생략 가능하다.
  • if 조건문과 비교해보면 if 는 조건식 결과에 true/false 만 가능하고 switch정수나 문자열 만 가능하다.
  • 실행 흐름 확인하기
  1. 조건식을 계산한다.
  2. 조건식의 결과와 일치하는 case 문으로 이동한다.
  3. 해당 case 문의 문장들을 수행한다.
  4. break; 를 만나거나 switch 문이 끝나면 switch 문 전체를 빠져나간다.

switch 문의 제약조건

  1. switch 문의 조건식 결과정수 또는 문자열 이어야 한다.
  2. case 문의 값은 정수 상수(문자 포함), 문자열 만 가능하며, 중복되지 않아야 한다.

int num, result;
final int ONE = 1;
switch (result) {
case '1': // OK. 문자 리터럴(정수 49와 동일)
case ONE: // OK. 정수 상수
case "YES" // OK. 문자열 리터럴
case num: // Error. 변수는 불가능
case 1.0: // Error. 실수도 불가능
}

FOR

for

for (초기화; 조건식; 증감식) {
조건식의 결과가 인 동안 반복적으로 실행하고자 하는 문장;

}
실행 순서
1. 초기화
2. 조건식
3. 조건식 이 참일 경우 문장 수행
4. 증감식
5. 조건식이 거짓이 될 때 까지 반복

중첩 for

for (초기화; 조건식1; 증감식) {
조건식1의 결과인 동안 반복적으로 실행하고자 하는 문장;
for (초기화; 조건식2; 증감식) {
조건식2의 결과인 동안 반복적으로 실행하고자 하는 문장;
}
}

향상된 for

for (타입 변수이름 : 배열 or 컬렉션) {
배열 or 컬렉션의 길이만큼 반복적으로 실행하고자 하는 문장;
}

임의의 정수 만들기

Math.random() -> 0.0 과 1.0 사이의 임의의 double 값을 반환한다.

  • 0.0 <= Math.random() < 1.0

1 부터 5 사이의 random 한 정수 값 구하기

  1. 0.0 5 <= Math.random() 5 < 1.0 * 5
  2. (int)0.0 <= (int)(Math.random() * 5) < (int)5.0
  3. 0 + 1 <= (int)(Math.random() * 5) + 1 < 5 + 1
  4. 1 <= (int)(Math.random() * 5) + 1 < 6

WHILE

while

while (조건식) {
조건식의 결과가 인 동안 반복적으로 실행하고자 하는 문장;

}
실행 순서
1. 조건식
2. 조건식 이 참일 경우 문장 수행
3. 조건식이 거짓이 될 때 까지 반복

do - while

do {
조건식의 결과가 인 동안 반복적으로 실행하고자 하는 문장;
} while (조건식);
실행 순서
1. 처음 한 번은 무조건 실행
2. 조건식
3. 조건식 이 참일 경우 문장 수행
4. 조건식이 거짓이 될 때 까지 반복

break 와 continue

break

자신이 포함된 하나의 반복문을 벗어난다.

continue

자신이 포함된 반복문의 끝으로 이동

  • 그리고 다음 반복으로 넘어간다.
  • 전체 반복 중에서 특정 조건시 반복을 건너뛸 때 유용하다.

이름붙은 반복문

반복문에 이름을 붙여서 하나 이상의 반복문을 벗어납니다.

0개의 댓글