카테고리 없음

자바의 정석4장

그zi운아이 2023. 6. 6. 15:13

이 글은 Java의 정석 3rd Edition을 읽고 정리한 내용입니다.

Chapter 4

 

조건문과 반복문


1.조건문과 반복분

  • 조건문 : 조건이 주어질 때 어떤 동작을 수행하도록 하는, 즉 조건에 따라 실행이 달라지게 할 때 사용되는 문장이다.
  • 반복문 : 소스 코드내에서 특정한 부분의 코드가 반복적으로 수행될 수 있도록 하는 구문이다.
  • 조건문은 크게 if,switch가 있고 반복문은 for문과 while문이 있다.

 

조건문

조건문은 조건식과 문장을 포함하는 블럭으로 구성되어 있으며 조건식의 연산결과에 따라 실행할 문장이 달라진다.

 

1-1. if문

if문은 기본적인 조건문으로 조건식과 괄호로 이루어 져있으며 조건식이 참이면 괄호 안의 문장을 수행한다.

if(조건식) {
	// 조건식이 true일떄 수행될 문장들을 적는다.
   }

 

조건식

  • 조건식은 일반적으로 비교연산자와 논리 연산자로구성된다.
  • 조건식의 결과는 반드시 true 또느 false이어야 한다.

1-2. if - else

if문은 변형 구조로 else가 더 추가된 방식이다. 조건식의 결과가 참이아닌 flase 값을 가졌을떄 else 블럭 내 명령어를 수행하라는 의미를 가진다.

if(조건식){
	// 조건식이 true 수행 코드
} else { 
	// 조건식이 false 수행 코드
}

 

1-3. if - else if문 

위에 if - else 구조의 조건문에선 두가지 조건만 확인 가능하다. 처리해야 되는 조건이 3개 이상인 경우는 if - else if 문을 사용해야 한다.

if(조건식1){
	// 조건식1이 참일때 수행할 문장 false일 경우 다음 조건식2를 확인함
} else if(조건식2){
	// 조건식2이 참일때 수행할 문장 false일 경우 다음 조건식3을 확인함
} else if(조건식3){
	// 조건식3이 참일때 수행할 문장 
} else{
	// 조건식 1 2 3 전부 flase 일때 수행할 문장
}

 

 

1.4 중첩 if 문 

if문의 블럭 내부에 if문을 포함시키는 방식 연속으로 조건을 확인하고 싶은경우에 사용된다.

if(조건식1){
	// 조건식1의 연산결과가 true일 때 수행될 문장들을 적는다.
	if(조건식2){
    	//조건식1과 조건식2가 모두 true일 때 수행될 문장들	
    	}
 	else{
	// 조건식1이 ture 이고, 조건식2가 flase일 때 수행되는 문장들
    	}
} else{
	// 조건식 1이 false일떄 수행되는 문장들
 }

 

1.5 switch문

if문과 같이 조건식을 비교하는 조건문으로 분기의 경우가 많아질 경우 if문보단 switch문이 가독성을 좋게 한다.

switch 문은 조건식을 계산한 후 결과가 일치하는 case문으로 이동하여 case블록의 문장들을 수행하고 break를 만나면 종료된다.

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

 

2. 반복문 

반복문은 어떤 작입이 반복적으로 수행되도록 할때 사용되며 for,while,do-while문이 있다.

주어진 조건의 결과가 true면 반복문을 실행하고 false면 반복문을 실행하지 않는다.

while과 for 둘다 반복문으로 사용 가능 하지만 주로 for문은 반복 횟수를 알고 있을때 사용된다.

 

2-1 for문 

for문은 반복 횟수를 알고 있을 때 적합하다. 구조가 직관직이고 이해가 쉽다.

for(int i=0; i<5; i++){
	System.out.println("Hello nice to meet you")
}
  1. 지역변수 int i = 0 초기화
  2. 조건식의 확인 (i < 5 => 0 < 5 )
  3. true일시 밑의 출력문 수행
  4. i값 1증가(i = 1)
  5. 위의 과정 반복 조건식이 false일 경우 반복문 종료

 

2-2 while 문

for 문에 비해 구조가 간단하다.

조건식을 평가해서 조건식이 거짓이면 문장을 벗어나고 참이면 블럭 내의 문장을 수행하고 다시 조건식으로 돌아간다.

while(조건식){
	// 수행될 문장
}

 

2-3 do - while 문

while문의 기본구조는 똑같으나 do 블록에 있는 문장을 수행하고 while문의 조건식을 확인하는 순서를 가진 반복문이다.

따라서 기본적으로 do-while문은 최소한 한번이상은 수행될 것을 보장한다.

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

 

2-3 break 문

반목문에서도 break문을 사용할 수있다. break는 현재 실행중인 반복문을 탈출하는 명령어이다.

주로 반복문 내부에 if문을 사용해 특정 조건을 만족하면 반복문을 벗어나는 식으로 활용한다,

int i = 0;
while(true){
	if(i == 0) break;
    i++;
}
  1.  int i = 0 초기화
  2.  while 조건식 확인(true 무한 반복)
  3. if문 조건확인
  4. true : 반복문 종료
  5. false : i 값 1증가;
  6. 위의 과정 반복

2-4 continue 문

반복문 내에서 사용가능한 명령어로 반복문 진행도중에 continue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.

for(int i =0; i<10; i++){
	if(i % 2 == 0){
    	continue;
    }
    System.out.println(i + "는 홀수입니다"); 
}

result 
1는 홀수입니다
3는 홀수입니다
5는 홀수입니다
7는 홀수입니다
9는 홀수입니다
  1. 반복문 실행
  2. 나머지 연산을 결과와 비교연산자를 통해 if 문 조건식 확인
  3. 나머지가 0일때: 반복문의 맨 밑으로 내려가고 다음 반복확인)
  4. 나머지가 1일떄: 출력문 실행 다음 반복 확인
  5. 위 과정 반복