읽은 책 정리/자바의정석 3판

[Java] Chapter04 조건문과 반복문

포포015 2020. 12. 11. 14:01

1. 조건문 -if , switch

 조건식과 문장을 포함하는 블럭{} 으로 구성되 있으며, 실행흐름을 변경할수 있다.

 처리할 경우의 수가 많을때는 if문보다 switch문이 효율적이지만 , switch문은 제약이 많다

 

1.2 if-else 문 

 if (조건식) {

         //조건식이 참(true)일때 수행될 문장

} else {

         //조건식이 거짓(false)일때 수행될 문장

}

 

1.3 if - else if문 (처리해야할 경우의 수가 셋 이상인경우)

if (조건식) {

     //조건식1의 연산결과가 참일때 수행

} else if (조건식 2) {

     // 조건식 2의 연산결과가 참일때 수행

} else {

     //위의 어느조건식도 만족하지 않을때 수행

}

 

1.4 중첩 if문

 if문의 블럭내에 또 다른 if문을 포함시키는것이 가능한데 횟수제한 X , 괄호{} 생략 조심해야함

 

1.5 switch문

if문은 조건식의 결과가 참과 거짓,두가지 밖에 없기때문에 경우의 수가 많아질수록 else-if 를 계속 추가해야하므로

저긴식이 많아져서 복잡해지고 , 여러개의 조건식을 계산해야하므로 처리시간이 많이걸림

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

 - 반드시 속도를 향상시켜야한다면 복잡하더라도 switch문 선택(조건식 계산속도의차이)

 -switch문의 중첩 가능. break문 생략 조심

1.조건식 계산

2.조건식의 결과와 일치하는 case문으로 이동

3. 이후 문장 수행

4.break문이나 switch문의 끝을 만나면 switch문을 전체빠져나감  

5. default:     //조건식의 결과와 일치하는 case문이 없을때 수행

 

switch문의 제약조건 

1. 조건식의 결과는 정수 또는 문자열 이어야한다.  (jdk1.7이전에는 조건식에 문자열이 허용되지않았음)

2. case문의 값은 정수 상수만 가능하며 중복되지않아야함

 

Stirng regNo = 

//문자열에 저장된 문자는 '문자열.charAt(index)로 가져올수있음.

 

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

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

 // 조건식이 참일때 수행될 문장

}     

-for문은 일반적으로 많이 사용함 (for무한반복 -조건식 ;;)

 

 - 향상된 for문

일반적인 for문과 달리 배열이나 컬렉션에 저장된 요소들을 읽어오는 용도로만 사용할수 있는 제약

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

for(int tmp : arr){       //조건식 ( 타입변수명: 배열또는 컬렉션)

  System.out.println(tmp);

}

 

2.2 while문 

if문과 달리 while문은 조건식이 '참(true)'인동안 거짓이되면 문장 전체를 벗어남.

while문의 조건식은 생략불가

int i = 1; //초기화

while ( i<=10) {    // 조건식

 System.out.println(i);

 i++; //증감식

 

2.3 do-while문

기본적인 구조는 while문과 같으나 조건식과 블럭{}의 순서를 바꿔놓은것. 최소한 한번은 수행될것을 보장

 

2.4 break문 

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

보통 무한 반복문에는 조건문과 break문이 항상 같이 사용됨. 그렇지 않으면 무한히 반복됨

 

2.5 continue문

continue문은 반복문 내에서만 사용 될수 있으며 , 반복이 진행되는 도중 continue문을 만나면

반복문의 끝으로 이동하여 다음 반복으로 넘어감.

continue문은 반복문 전체를 벗어나지않고 다음 반복문을 계속 수행한다는 점이 break문과 다름

'읽은 책 정리 > 자바의정석 3판' 카테고리의 다른 글

[Java] Chapter07 객체지향 프로그래밍  (0) 2021.03.22
[Java] Chapter06 객체지향언어  (0) 2021.03.22
[Java] Chapter05 배열  (0) 2021.03.21
[Java] Chapter 3 연산자  (0) 2020.12.07
[Java] Chapter 02 변수  (0) 2020.12.06