Programming/Java \ Spring

🔥자바스터디🔥 자바의 정석 CH4 조건문과 반복문(if, switch, for, while)

1. 조건문 - if, switch

      

      조건문은 조건식과 문장을 포함하는 블럭으로 구성되어 있으며,

      조건식의 연산결과에 따라 실행할 문장이 달라져서 프로그램의 실행흐름을 변경할수 있다.

 

1.1 if문

if(조건식){
          // 조건식이 참일때 수행될 문장
}

     - 조건식 : 비교연산자와 논리연산자로 구성, 결과값은 반드시 true 또는 false이어야 한다.

     - 블럭{} : 블럭 내의 문장이 하나일 경우 괄호를 생략할 수 있다.

 

1.2 if-else문 /  if-else if문

[if-else문]
if(조건식){
          // 조건식이 참일때 수행될 문장
}else {
          // 조건식이 거짓일때 수행될 문장
}
[if-else if문]
if(조건식1){
          // 조건식1이 참일때 수행될 문장
}else if(조건식2) {
          // 조건식2이 참일때 수행될 문장
}else {
          // 어떤 조건식도 만족하지 않았을때 수행될 문장
}

 

1.3 중첩 if문 

 

    if문의 블럭 내에 또 다른 if문을 포함시킨 것, 중첩의 횟수에는 거의 제한이 없다.

 

1.4 switch문 

   

    switch문은 하나의 조건식으로 많은 경우의 수를 처리할수 있고 표현도 간결하다.   

    그러나 switch문은 제약조건이 있어 복잡해지더라도 if문을 사용하는 경우가 있다.

switch(조건식){
	case 값1 :
    	//조건식의 결과가 값1과 같을 경우수행될 문장들
        break;
    case 값2 :
    	//조건식의 결과가 값2과 같을 경우수행될 문장들
        break;
    default :
    	//조건식의 결과와 일치하는 case문이 없을때 수행될 문장들
}

    case문 : 조건식의 결과값으로 반환될 수 있는 값을 정의하고, 일치하면 수행할 문장들이 위치한다.

    break문 :  각 case문의 영역을 구분하는 역할을 한다. switch문을 빠져나간다

    default문 : if문의 else블럭과 같은 역할을 한다.

 

    ** switch문의 제약조건 

         - switch문의 조건식 결과는 정수 또는 문자열이어야 한다.

         - case문의 값은 정수 상수만 가능하며, 중복되지 않아야한다.

    ** switch문도 중첩이 가능하다.

 

2. 반복문 - for, while, do-while

 

2.1 for문

    반복 횟수를 알고 있을때 적합하다.

for(초기화; 조건식; 증감식){
	// 조건식이 참일때 수행될 문장들
}

** for문 수행 순서

초기화 - 조건식 - 참일경우 블럭내 수행될 문장(거짓일 경우 반복문 종료) - 증감식

 

초기화 : 반복문에 사용될 변수를 초기화하는 부분이며, 처음 한번만 수행된다.

           반복문에서 사용될 변수가 둘이상 필요할 때에는 콤마를 구분자로하여 변수를 초기화한다. (단, 타입은 일치해야한다)

 

조건식 : 조건식을 잘 못 작성하면 한번도 수행되지 않거나 영원히 반복되므로 주의하여 작성해야한다.

 

증감식 : 반복문을 제어하는 변수의 값을 증가 또는 감소시키는 식이다. 증감식도 콤마를 이용하여 여러개를 사용할수 있다.

 

** 초기화, 조건식, 증감식은 필요하지 않으면 생략 가능하며, 모두 생략도 가능하다.

** for문에 사용되는 변수의 수가 적은 것이 더 효율적이므로 불필요한 변수의 사용을 줄이는 것이 좋다.

 

** 향상된 for문(enhanced for statement)

for(타입 변수명 : 배열 또는 컬렉션){
	// 반복할 문장
}

배열 또는 컬렉션에 저장된 값이 매 반복마다 하나씩 순서대로 읽혀서 변수에 저장된다.

블럭내에서는 정의한 변수를 사용하여 코드를 작성한다.

** 배열이나 컬렉션에 저장된 요소들을 읽어오는 용도로만 사용할수 있다.(제약)

 

2.2 while문

while(조건식){
	//조건식의 결과값이 참인동안 반복될 문장들
}

while문은 조건식이 거짓이면 문장 전체를 벗어나고 참이면 블럭 내 문장을 수행하고 다시 조건식으로 돌아간다.

조건식이 거짓이 될때까지 계속 반복된다.

 

- while문의 조건식은 생략이 불가하다.

 

2.3 do-while문

do{
 	// 조건식의 결과값이 참일때 반복될 문장들
}while(조건식);

do-while문은 조건식을 평가하기 전 반복될 문장을 먼저 실행하기 때문에 최소 한 번은 수행된다.

 

2.4 break문

 

switch문 뿐 아니라 반복문에서도 break문을 사용할수 있따.

break문은 자신이 포함된 가장 가까운 반복문을 빠져나간다.

** 무한 반복문에는 조건문과 break문이 항상 같이 사용된다. (무한히 반복되는 것을 방지하기 위해)

 

2.5 continue문

 

continue문은 반복문 내에서만 사용될수 있다. 반복이 진행되는 도중 continue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.

반복문 전체를 벗어나지 않고 다음 반복을 계속 수행한다.

 

2.6 이름 붙은 반복문

 

여러개의 반복문이 중첩된 중첩 반복문은 break문을 통해 벗어날수 없기 때문에 중첩 반복문 앞에 이름을 붙이고 break문과 continue문에 이름을 지정함으로써 하나 이상의 반복문을 벗어나거나 건너뛸수 있다.