📝 이것이 자바다

Chapter 04. 조건문과 반복문

j_estory 2022. 11. 2. 19:36

4.2 if 문

  • if 문은 조건식의 결과에 따라 블록 실행 여부가 결정된다.
  • 조건식에는 true 또는 false 값을 산출할 수 있는 연산식이나 boolean 변수가 올 수 있다. 
  • 중괄호 {} 를 생략할 수 있는데 생략하지 않고 그냥 쓰는 것이 더 좋다.
    • 중괄호 블록을 생략하면 코드의 가독성이 좋지 않고, 버그 발생의 원인이 될 수 있다. 

🏷 else-if 문

  • else-if는 상위 조건식이 false 일 경우 평가되고, else if 가 true이면 해당 블록이 실행된다. 
  • 마지막에는 else 블록을 추가할 수 있는데 모든 조건식이 false 이라면 else 블록을 실행하고 if문을 벗어나게 된다. 

4.3 switch 문

  • 변수의 값에 따라서 실행문이 결정되기 때문에 같은 기능의 if 문 보다 코드가 간결해진다. 
  • switch 문은 정수 타입 - byte, char, short, int, long 과 문자열 타입 - String 변수를 사용할 수 있다 .
    (실수형 안됨: double, float)
  • switch 문은 괄호 안의 변수값에 따라 해당 case로 가서 실행문을 실행시킨다. 
    • 만약 변수값과 동일한 값을 갖는 case가 없으면 default로 가서 실행문을 실행시킨다. 
    • default 는 생략 가능하다. 
  • 각 case 문 끝에 있는 break는 다음 case를 실행하지 않고 switch 문을 빠져나가기 위해 필요하다. 
    • 만약 break 문이 없다면 다음 case 가 연달아 실행되는데, 이때는 case 값과는 상관없이 실행된다. 

JAVA 12 이후 부터

  • 단일 값일 경우, 화살표 오른쪽에 값을 기술하면 되고, 중괄호를 사용할 경우 yield 키워드로 값을 지정하면 된다.
// java 12 부터 가능
int score2 = switch(grade) {
	case 'A' -> 100;
    case 'B' -> {
    	int result = 100 - 20;
        yield result;
    }
    default -> 60;
  };
  // score2 = 80
}

4.4 for 문

  • 알고 있는 지식과 추가적으로 알아야하는 내용 없으므로 생략

4.5 while 문 vs do-while 문

  • while 문
    • 시작할 때부터 조건식을 평가하여 블록 내부를 실행할지 결정
  • do-while 문
    • 블록 내부를 먼저 실행하고 실행 결과에 따라서 반복 실행 여부를 판단
    • while() 문 뒤에 반드시 세미콜론을 붙여야 한다.

4.6 break 문

  • 반복문을 실행 중지하거나 조건문인 switch 문을 종료할 때 사용한다. 
  • 만약 반복문이 중첩되어 있을 경우, break 문은 가장 가까운 반복문만 종료하고 바깥쪽 반복문은 종료시키지 않는다.
    • 중첩된 반복문에서 바깥쪽 반복문까지 종료시키려면 바깥쪽 반복문에 이름을 붙이고, break 이름; 을 사용하면 된다.
Label: for (...) {
	for (...) {
    	break Label;
    }
}

4.8 continue 문

  • continue 문이 실행되면 for 문의 증감식, while 문, do-while 문의 조건식으로 바로 이동하게 된다. 
  • continue 문도 대게 if 문과 같이 사용하는데, 특정 조건을 만족하는 경우에만 continue 문을 실행하여 그 이후의 문장을 실행하지 않고, 다음 반복으로 넘어가게 된다.

 

'📝 이것이 자바다' 카테고리의 다른 글

Chapter 06. 객체 지향 프로그래밍 - 2  (0) 2022.11.22
Chapter 06. 객체 지향 프로그래밍 - 1  (0) 2022.11.14
Chapter 05. 참조 타입  (0) 2022.11.07
Chapter 03. 연산자  (0) 2022.10.30
Chapter 02. 변수와 타입  (0) 2022.10.18