- 보통 메소드 {에서 }까지 위에서 아래 흐름으로 실행하지만, 원하는 방향으로 흐름을 바꿀 수 있도록 하는 것 = 제어문
- 제어문은 조건문(if, switch)와 반복문(for, while, do-while)이 있다.
- 조건식의 결과에 따라 블록 실행 여부 결정
- 조건식엔 true, false 값을 산출하는 연산식 또는 boolean 변수가 온다.
- 조건이 true인 경우, 실행할 문장이 하나라면 {} 생략 가능
생략하지 않는게 모쪼록 좋다.. why? ㄱ ㅏ독성, 버그 원인 때무네 - if-else문은 if 조건식이 true면 if 블록 실행, false면 else 블록 실행
- if-else if-else문 순서대로 true인 if, else if 블록이 실행 but 다 false이면 else 블록 실행
switch(변수){
case 값1:
break;
case 값2:
break;
case 값3:
break;
default:
}
- 변수값에 따라 실행문이 결정 (if문보다 코드 간결)
- 변수값으로 정수와 문자(char), 문자열(string)이 올 수 있다.
- 괄호 안 값과 동일한 값을 갖는 case로 가 실행문 실행
- 동일한 값 case가 없으면 default 실행
- break가 업으면, 다음 case가 연달아 case값에 상관없이 실행
- default 생략 가능
작업을 반복적으로 실행하기 위해 사용
- for문 기본 형태
for(초기화식 ; 조건식 ; 증감식){
실행문
}
- 초기화식은 다음과 같이 생략할 수 있다.
int i = 1;
for(;i<=100;i++){~~~~}
- 초기화식, 증감식은 둘 이상일 수 있다. 이때는 쉼표로 구분
for(int i = 0, j = 100; i<=50, j>=50; i++,j--){~~~~}
- 초기화식에서 선언된 변수는 로컬 변수이므로 for문 밖에서 사용 불가. but, for문 이전에 선언했다면 외부에서 사용 가능
- 초기화식에 부동소수점 타입을 사용하면 안됨. 0.1은 float 타입으로 정확히 표현할 수 없는 경우가 있자네
while(조건식){
실행문
}
- 조건식이 true인 경우 반복해서 실행, false인 경우 종료
- 조건신엔 boolean변수나 true/false 값을 산출하는 어떠한 연산식도 가능
- while이 무한히 실행되는 무한 루프가 생길 수 있다.
do{
실행문
}while(조건식);
- while문과 비슷하지만, 조건식 확인 순서가 다르다.
반복문, switch문의 실행 중지를 목적으로 사용된다.
- 반복문이 중첩된 경우 가장 가까운 반복문만 종료한다.
- 중첩된 반복문의 경우, 바깥족 반복문까지 종료시키려면 바깥쪽 반복문에 이름을 붙이고 "break 이름;"을 사용
Label: for(){
for(){
break Label;
}
}
- 반복문인 for, while, do-while문에서만 사용
- 블록 내부에서 continue문이 실행되면 증감식 또는 조건식으로 이동