조건문과 반복문

안승수·2023년 1월 16일
0

Java

목록 보기
4/8
post-thumbnail

앞서 자료를 변수에 담고, 값의 조작을 가하는 연산자에 대해 알아보았다.
그렇다면 이번에는 실제 프로그램의 동작에 있어서 흐름을 제어할 수 있는 방법에 대해 알아보자.

조건문 : 특정 조건을 만족할 때 실행하고자 사용

조건문은 조건식의 참,거짓을 통해 특정 블럭의 실행 유무를 결정할 수 있다.
조건식을 비교 연산자와 논리 연산자를 통해 구성될 수 있다.

if문과 switch문이 있는데, switch문은 아래와 같은 제약 조건이 있다.

반드시 정수형(Enum,Method call) 또는 문자열 리터럴만 비교대상과 조건의 값이 될 수 있고, 중복이 불가능하다.

만족하는 가장 상단의 조건을 찾으면 이후 case 비교는 무시되며 모든 문장이 수행되므로, break를 사용해야 한다.

if(condition){
	//statement
}
else if(condition2){
	//statement
}
else {

}

switch(target){

	case val1:
    	break;
        
    default :
    	break;       
}

따라서 모든 if-else문을 switch-case로 변환할 수는 없다는 것을 알 수 있다.

가독성을 위해서는 들여쓰기와 Block을 표기하자

조건문의 참 거짓 여부에 따라 실행되는 문장이 하나일 경우 Block({}) 생략이 가능하지만, 추후 유지보수를 위해 항상 표기하는 것이 바람직하며, 중첩되는 경우에는 들여쓰기(Indentation)을 통해서 가독성을 높이는 것이 좋다.

반복문 : 어떤 작업을 반복적으로 수행하고자 사용

조건문은 특정 조건을 만족 유무에 따라 실행 여부를 판단한다고 하였다.
반복문은 이를 확장하여, 조건을 만족하는 동안 혹은 정해진 횟수동안 실행문을 반복적으로 실행할 수 있다.

for : 반복 횟수를 알고 있는 경우에 사용한다.
for(init ; condition ; change){
	//statement
|

for문의 경우, 초기화는 최초 1회만 수행되며 이후 조건판단,실행문,변화가 반복된다.

int[] arr = new int[5]{10,20,30,40,50};

for(int val : arr){
	System.out.println(val);
}

이는 향상된 for문으로, index는 불필요하고 반복되는 대상만 필요할 때 iterable한 대상에 한하여 사용가능하다.

while문의 경우, 조건문을 확장하여 조건을 만족하는 동안에 반복적으로 수행된다. do-while은 적어도 1번 수행문이 실행된다는 특징이 있다.

while(conditon){
	//statement
    //change
}

do {
	//statement
}while(condition);

따라서 for문과 while문은 상호 호환이 가능하며, 조건을 반복하는 동안 break,continue를 통해
흐름을 추가로 제어할 수 있다.

break문의 경우 별도로 이름을 명시하지 않으면 가장 가까운 scope에 속하는 반복문을 더이상 실행하지 않고 탈출하게 된다.

outer:
while(true){
	...
    for(;;){
    	if(condition){
        	break outer; // 바깥 Loop 탈출
        }
        if(condition2){
        	break; // 안쪽 Loop 탈출
        }
    }
}

continue의 경우 더이상 아래의 실행문을 수행하지 않고 증감식을 통해 다음 반복으로 흐름이 바뀐다.

break문에 이름을 붙이는 경우 원하는 위치의 반복문을 탈출할 수 있다.

profile
To be FullStack Developer

0개의 댓글