코드스테이츠_국비교육/[Section1]

09_제어문(조건문, 반복문)_22.08.31

생각없이 해도 생각보다 좋다. 2022. 9. 2. 00:36

제어문

>의미

: 위에서 아래로 순차적으로 실행되는 코드의 흐름을 제어할 수 있음.

>구분

  • 조건문
  • 반복문

 

조건문

>의미

: 제어문 중 하나
: 코드의 흐름 중 원하는 코드만 실행시키게 하는 제어문.


>구분

  • if문
  • if...else문
  • switch문

>if문

if (조건식) {
: 조건식이 참인 경우 실행됨.(=block)
: 조건식이 거짓인 경우 조건문 자체를 지나침.
}


>if...else문

 

if (조건식) {...}
else if (조건식) {...}	: if문의 확장판
...			: 원하는 만큼 else if로 구분 가능
else {...}		: else의 block은 default값으로 생각. (생략 가능)


>switch문

if문과 다를게 없지만 이따금 가독성을 위해 사용할 필요가 있는 구문

switch (변수명) { //(변수명)의 타입으로는 int, char, String이 올 수 있음.
case 변수값1 : 변수명=변수값1일때, 실행되는 실행문;
break;
case 변수값2 : 변수명=변수값2일때, 실행되는 실행문;
break;
...
default : default 실행문; (생략 가능)
break;
} //enhanced switch문도 존재함.(우선은 존재만 알아두자)

-fall through

: switch문의 특징

: break로 하나의 case를 탈출하지 않으면 다음의 case까지 실행되는 특징. (잘 이용하면 편하게 사용가능)

 

반복문

>의미

: 제어문 중 하나

: 코드의 흐름 중 원하는 코드를 반복적으로 실행시키게 하는 제어문.

 

>종류

  • for문 (+Enhanced for문)
  • while문 (+do-while)문

>for문: 기본 for문

for(초기화; 조건식; 증감식){...}

-초기화: for문의 증감식에 사용할 변수의 초기화를 실행
-조건식: for문의 탈출 조건; 참인 경우에는 for문 반복, 거짓이 된 경우에는 for문 탈출
-증감식: for문의 초기화 조건이 탈출 조건을 충족하게 만들기 위한 식
-{...} : for문의 조건식이 참일 경우 실행되는 실행문.

-예시.
int sum = 0;
for(int i=0; i<10; i++){
	sum += i;
	System.out.println("출력: "+sum);
}
/*
출력: 0
출력: 1
출력: 3
*/
    
-고인물 예시1: 인자로 주어지는 값이 초기값과 같은 경우 아래와 같이 쓸 수 있음.
for(; num>1; num--){...} :num이 인자로 주어지며, 주어진 num의 값을 그대로 초기화 값으로 사용.

-고인물 예시2: compact for loop;
int sum = 0;
for(int i=0; i<3; sum += i++) System.out.println("출력: "+sum);
/*
출력: 0
출력: 0
출력: 1
*/

>for문: Enhanced for문

배열을 검색하는 목적의 for문
for(변수타입 변수명in실행문 : 배열참조변수){...}
변수타입: 블럭{...}에서 각각의 배열의 요소를 저장하는 변수의 타입
변수명in실행문: 블럭{...}에서 각각의 배열의 요소를 저장하는 변수명
배열참조변수: 검색할 배열을 참조하는 변수

예시.
int[] numSet = new int[]{1,2,3}; //배열 생성
for(int num : numSet){
	System.out.println(num+"번 손님");
}
/*
1번 손님
2번 손님
3번 손님
*/

>while문: 기본 while문

(증감변수 초기화);
while(조건식){
	실행문;
    증감식;
    }

: for문에서 '증감변수 초기화'와 '증감식'의 위치만 다른 반복문이다.
: 반복문 외부에서 증감변수를 초기화시키고 실행문 내부에서 증감식을 만든다.
: 조건식이 참일 경우 실행문이 실행되고, 거짓인 경우 탈출한다.
예시.
int num=0;
while(num<3){
	System.out.println("출력: "+num);
    num++;
    }
/*
출력: 0
출력: 1
출력: 2
*/

>while문: do-while문

(증감변수 초기화);
do{
	실행문;
    증감식;
}while(조건식);
: while문과 같은 기능이지만 실행문(do)이 조건식보다 앞서는 구조를 가진 반복문.
: 실행문이 앞서기 때문에 조건식이 거짓이 되어 탈출하게 되어도 실행문이 먼저 실행됨.
: 즉, 무조건 최소 1회 실행이 이루어짐.
예시1.
int num=0;
do{
	System.out.println("출력: "+num);
    num++;
}while(num<3)
/*
출력: 0
출력: 1
출력: 2
*/
예시2.
int num=1;
do{
	System.out.println("출력: "+num);
    num++;
}while(num<1)
/*
출력: 1
*/

>break문

: break; 명령어를 입력

: 가장 가까운 반복문을 탈출함

: label을 이용하면 가장 가까운 반복문이 아닌, 원하는 반복문으로 탈출할 수도 있음.

 

>continue문

: continue; 명령어를 입력

: 다음 반복으로 넘어간다. 즉, 현재 증감문을 건너뜀.