dohun.log

[Java]04.조건문과 반복문 본문

Study/Java

[Java]04.조건문과 반복문

dohun31 2022. 1. 11. 12:16

4.1 코드 실행 흐름 제어

4.2 조건문

4.2.1 if문

if문

if문조건식의 결과에 따라 블록 실행 여부가 결정된다.

if(조건식) {
  // 조건식이 true
 }
 // 조건식이 false

조건식이 true일 경우 if문 내부의 실행문을 실행하고, false일 경우 if문 내부의 실행문을 실행하지 않는다.

int a = 1;
if(a < 10) {
  System.out.println("a는 10보다 작아요.");
}

if-else문

if 문은 else 블록과 함께 사용되어 조건식의 결과에 따라 실행 블록을 선택한다.

if(조건식) {
  // 조건식이 true
 } else {
  // 조건식이 false
 }

조건식이 true일 경우 if문 내부의 실행문을 실행하고, false일 경우 else 내부의 실행문을 실행한다.

int a = 1;
if(a < 10) {
  System.out.println("a는 10보다 작아요.");
} else {
  System.out.println("a는 10보다 크거나 같아요.");
}

if-else if-else문

여러개의 조건식true가 되는 블록만 실행하고 전체 if문을 벗어나게 된다.

if 블록의 끝에 else if문을 붙이면 된다. 

if(조건식1) {
  // 조건식1이 true
} else if(조건식2) {
  // 조건식2가 true
} else {
  // 조건식1이 false && 조건식2가 false
}

조건식1true일 경우 if문 내부의 실행문을 실행하고, 조건식2 true일 경우 else if 내부의 실행문을 실행한다.

만약에 조건식1, 조건식2 모두 false라면 else문 내부의 실행문을 실행한다.

int a = 1;
if(a < 10) {
  System.out.println("a는 10보다 작아요.");
} else if(a == 10){
  System.out.println("a는 10이에요.");
} else {
  System.out.println("a는 10보다 커요.");
}

중첩 if문

if문의 블록 내부또 다른 if문을 사용할 수 있다.

if(조건식1) {
  // 조건식1이 true
  if(조건식2) {
    // 조건식2가 true
  } else {
    // 조건식2가 false
  }
} else {
  // 조건식1이 false
}

조건식1 true일 경우 if문 내부의 실행문을 실행하고, 조건식2 true일 경우 if 내부의  또 다른 if문 내부의 실행문을 실행한다.

int a = 1;
if(a < 10) {
  if(a < 5) {
    System.out.prinln("a는 5보다 작아요.");
  } else {
    System.out.println("a는 5보단 크고 10보단 작아요.");
  }
} else {
  System.out.println("a는 10보다 크거나 같아요.");
}

4.2.2 switch문

if문과 마찬가지로 조건 제어문이다.

if문 → 조건식이 true일 경우 내부 블록 실행

switch문 → 변수가 어떤 값을 갖느냐에 따라 실행문 선택

switch(변수) {
  case 값1:
    // 변수 == 값1
    break;
  case 값2:
    // 변수 == 값2
    break;
  default:
    // 변수 != 값1 && 변수 != 값2
}

괄호 안의 값과 동일한 값을 갖는 case로 가서 실행문을 실행한다. 괄호 안의 값과 동일한 값을 갖는 case가 없는 경우 default로 가서 실행문 실행한다.

int a = 1;
switch(a) {
  case 1:
    System.out.println("a는 1이에요.");
    break;
  case 2:
    System.out.println("a는 2에요.");
    break;
  default:
    System.out.println("a는 1도아니고 2도 아니에요.");
    break;
}

case 끝에 break가 붙어 있는 이유 → 다음 case를 실행하지 말고 빠져나오기 위해서

int a = 1;
switch(a) {
  case 1:
    System.out.println("a는 1이에요.");
  case 2:
    System.out.println("a는 2에요.");
    break;
  default:
    System.out.println("a는 1도 아니고 2도 아니에요.");
    break;
}

만약 case1의 break가 없다면 결과는 다음과 같을 것이다.

// a는 1이에요.
// a는 2에요.

switch문의 괄호에 올 수 있는 타입

~ 자바6정수 타입 변수, 정수값을 산출하는 연산식

자바7 ~~ 자바6에서 가능한 타입 + String 타입

4.3 반복문

4.3.1 for문

똑같은 실행문을 반복적으로 실행할 경우 반복문 사용

// 반복문 사용 x
int sum = 0;
sum += 1;
sum += 2;
sum += 3;
sum += 4;
sum += 5;
System.out.println("1 ~ 5까지의 합: " + sum);

// 반복문 사용
int sum = 0;
for(int i = 1; i <= 5; i++) {
  sum += i;
}
System.out.println("1 ~ 5까지의 합: " + sum);
for(초기화식; 조건식; 증감식) {
  실행문
}

for문의 흐름

  1. 초기화식 (생략 가능)
  2. 조건식 평가
    1. true일 경우 내부 실행문 실행
    2. false일 경우 반복문 종료
  3. 증감식 실행
  4. 반복문이 종료될때까지 2, 3 반복

4.3.2 while문

for문과 마찬가지로 반복문이다.

for문 → 정해진 횟수만큼 반복

while문 → 조건식이 true일 경우 반복

 

while(조건식) {
  실행문
}

조건식이 true일 경우 while문 내부의 실행문을 실행하고, false일 경우 반복문 종료한다.

int i = 0;
while(i < 10) {
  i += 1;
}
// i = 10

4.3.3 do-while문

while문과 마찬가지로 조건식에 의해 반복 실행한다.

 while문 → 조건식이 true일 경우 반복 (시작할 때 조건식 검사)

do-while문 → 조건식이 true일 경우 반복 (블록 내부의 실행문을 우선 실행시키고 조건식 검사)

do {
  실행문
} while(조건식);
int i = 0;
do {
  i += 1;
} while(i < 10);
// i = 10

4.3.4 break문

반복문을 실행 중지할 때 사용된다. switch문에서도 사용

for(...) {
  .
  .
  break;
  x
  x
 }

break문은 가장 가까운 반복문만 종료하고 바깥쪽 반복문은 종료시키지 않는다.

바깥쪽 반복문 종료하려면 → 반복문에 이름붙이고 "break 이름;" 사용

Label: for(...) {
  for(...) {
    break Label;
    x
    x
  }
  x
  x
}

4.3.5 continue문

continue문은 반복문에서만 사용

for문 → 증감식으로 이동

 while문 → 조건식으로 이동

 do-while문 → 조건식으로 이동

 

출처: 이것이 자바다 Chater04 조건문과 반복문

'Study > Java' 카테고리의 다른 글

[Java]05.참조 타입  (2) 2022.01.18
[Java]01.자바 시작하기  (1) 2022.01.11
[Java]03.연산자  (0) 2022.01.10
[Java]06.클래스-확인문제  (0) 2021.12.29
[Java] 02.변수와 타입  (0) 2021.12.20
Comments