개발/Java

제어문(조건문과 반복문)

Debin 2022. 5. 17.
반응형

백기선님이 과거에 진행했던 Java 스터디 4주차 스터디 입니다.

조건문

If

if문은 가장 기본적인 조건문이다. 크게 조건식과 괄호로 이루어진다.

만일(if) 조건식이 참(true)이면 괄호{ } 안의 문장들을 수행한다.

if (조건식) {
	//조건식이 true일 때 수행될 코드를 작성한다.
}

If - else

if문에 else블럭이 추가된 것이 if-else문이다. 

else의 뜻이 '그 밖의 다른'이므로 조건식의 결과가 참이 아닐 때, 즉 거짓일 때 else블럭의 문장을 수행하라는 뜻이다.

if (조건식) {
	//조건식이 true일 때 수행될 코드를 작성한다.
}
else {
	//조건식이 false일 때 수행될 코드를 작성한다.
}

if - else if 

첫 번째 조건식부터 순서대로 평가해서 결과가 참인 조건식을 만나면, 해당 블럭{} 만 수행하고 'if-else'문 전체를 벗어난다.

만일 결과가 참인 조건식이 하나도 없으면, 마지막에 있는 else블럭의 문장들이 수행된다. else 블럭 생략도 가능하다.

if (조건식1) {
	//조건식1이 true일 때 수행될 코드를 작성한다.
}
else if (조건식2) {
	//조건식2가 true일 때 수행될 코드를 작성한다.
}
else {
	//조건식이 false일 때 수행될 코드를 작성한다.
}

중첩 if문

if (조건식1){
	//조건식1의 연산결과가 true일 때 수행될 코드를 적는다.
	if (조건식2) {
    	//조건식2와 조건식1이 모두 true일 때 수행될 코드를 적는다
    }else {
    	//조건식1이 true이고, 조건식2가 false일 때 수행되는 코드=
    }
} else {
	//조건식1의 연산결과가 false일 때 수행될 코드
}

swtich 문

if문과 달리 switch문은 단 하나의 조건식으로 많은 경우의 수를 처리할 수 있다.

switch문은 조건식을 먼저 계산한 다음, 그 결과와 일치하는 case문으로 이동한다.

만일 조건식의 결과와 일치하는 case문이 없다면 default문으로 이동한다. deault문은 else 블럭과 비슷한 역할을 한다.

switch문의 순서는 아래와 같다.

  1. 조건식을 계산한다.
  2. 조건식의 결과와 위치하는 case문으로 이동한다.
  3. 이후의 문장들을 수행한다.
  4. break문이나 switch문의 끝을 만나면 switch문 전체를 빠져나간다.

switch문의 제약 조건은 아래와 같다.

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

switch (level){
	case 1 : 
            System.out.println("level is 1.");
            break;
        case 2 : 
            System.out.println("level is 2.");
            break;
        case 3 : 
            System.out.println("level is 3.");
            break;
        default : 
            System.out.println("Another level.");

}

반복문 

for문

for문의 구조는 아래와 같다.

for (초기화; 조건식; 증감식){
	//조건식이 참일 때 수행될 문장들을 적는다.
}
  1. 제일 먼저 초기화를 진행한다.
  2. 초기화를 진행하고 조건식이 참이라면,
  3. for문 내부 코드들을 수행하고, 거짓이라면 for문을 벗어난다.
  4. 코드들을 수행했다면, 증감식을 진행하고,
  5. 다시 조건식을 연산하는데, 참이면 for문 내부 코드들을 수행한다.
  6. 조건식이 거짓일 때 까지, 이 작업을 반복한다.

for문 순서

예시 코드는 아래와 같다.

for (int i = 1; i<=5 ; i++ ){
	System.out.println("Hello, Java");
}

출력된 결과
Hello, Java
Hello, Java
Hello, Java
Hello, Java
Hello, Java

while문

while문의 구조는 아래와 같다.

조건식과 블럭으로 이루어져 있다. 조건식이 true일 때, 블럭 내부의 코드를 반복한다.

조건식이 false면, while문을 벗어난다.

while(조건식) {
	//조건식이 참일 때 반복할 코드
}

아래는 예시코드다.

int i = 1;
while(i <= 5 ){
	System.out.println("Hello, Java.");
	i++;
}

출력 결과
Hello, Java.
Hello, Java.
Hello, Java.
Hello, Java.
Hello, Java.

do-while문

do-while문은 while문의 변형으로 최소한 한 번은 수행될 것을 보장한다.

while문과 반대로 블럭 {}을 먼저 수행한 후에 조건식을 평가한다.

구조는 아래와 같다.

do {
	//조건식의 연산결과가 참일 때 수행될 문장들을 적는다.
} while (조건식)

break문

switch문에서 벗어나기 위해 break문을 사용했다.

반복문에서도 break문을 사용할 수 있는데, switch문에서 그랬던 것처럼,

break문은 자신이 포함된 가장 가까운 반복문을 벗어난다.

아래는 예시코드다.

int sum = 0;
for(int i = 0; i < 100 ; i++){
	if(sum > 100) break;
	sum += i;
}

출력 값
105

continue문 

continu문은 반복문 내에서만 사용할 수 있고,

반복이 진행되는 도중에 continue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.

for문의 경우에는 증감식으로 이동하며, while문과 do-while문의 경우 조건식으로 이동한다.

for(int i = 0; i <= 10; i ++){
	if (i%3==0) continue;
    System.out.println(i);
}

출력결과
1
2
4
5
7
8
10

 

이상으로 포스팅을 마칩니다.

 

참고자료

자바의 정석 chapter 4. 조건문과 반복문 (저자 : 남궁성)

http://www.tcpschool.com/c/c_control_loop

 

반응형

댓글