-
[자바의 정석] Chapter04. 조건문과 반복문스터디플래너/공부하기 2022. 1. 8. 10:40
프로그램의 흐름을 바꾸는 역할을 하는 문장들을 '제어문(control statemen)'이라고 한다. 제어문에는 '조건문과 반복문'이 있는데, 조건문은 조건에 따라 다른 문장이 수행되도록 하고, 반복문은 특정 문장을 반복해서 수행한다.
- 조건문 - if, switch
- if문
- 가장 기본적인 조건문으로 조건식과 괄호로 이루어져있다. 조건식이 참이라면 괄호 안의 문장을 수행한다.
- 블럭의 끝에는 ';'을 붙이지 않는다. 블럭 내 문장이 하나일 때는 괄호를 생략할 수 있지만 생략하지 않고 사용하는 것이 바람직하다.
- if-else문
- 조건식이 참인 경우 외에도 조건식이 거짓인 경우 else블럭의 문장을 수행하는 구조이다.
- if-else if문
- 첫 조건식이 외에도 여러 개의 else if 조건식을 판단한 뒤 else 블럭의 문장을 수행하는 구조이다.
- 중첩 if문
- if문 블럭 내 또 다른 if문을 포함시키는 것을 중첩 if 문이라고 부른다. 중첩의 횟수에는 거의 제한이 없다. 외부의 if문과 내부의 if문을 정확하게 구분하여 작성해야 한다.
- switch문
- 경우의 수가 많아질 수록 if문은 else if 조건식이 많아져 복잡해지고, 여러 개의 조건 식을 계산해야하므로 처리시간도 많이 걸린다. switch문은 하나의 조건식으로 많은 경우의 수를 처리할 수 있다.
- switch문의 제약조건은 조건식 결과가 정수 또는 문자열이어야 한다. 그리고 case문의 값은 정수, 상수만 가능하며, 중복되지 않아야 한다.
- if문
- 반복문 - for, while, do-while
- for문
- for문은 '초기화', '조건식', '증감식', '블럭', 모두 4부분으로 이루어져 있으며, 조건식이 참인 동안 블럭. 내의 문장들을 반복하다가 거짓이 되면 반복문을 벗어난다. 초기화가 수행되고 조건식이 참인 동안 조건식 → 수행될 문장 → 증감식의 순서로 반복된다. 그러다가 조건식이 거짓이 되면, for문 전체를 빠져나가게 된다.
- 향상된 for문(enhanced for statement)는 JDK1.5부터 배열과 컬렉션에 저장된 요소에 접근할 때 기존보다 편리한 방법으로 처리할 수 있도록 for문의 새로운 문법이 추가되었다.
- 타입은 배열 또는 컬렉션 요소의 타입이어야 한다. 배열 또는 컬렉션에 저장된 값이 매 반복마다 하나씩 순서대로 읽혀서 변수에 저장된다. 향상된 for문은 일반적인 for문보다 간결하다는 장점이 있지만 배열과 컬렉션에 저장된 요소를 읽어오는 용도로만 사용할 수 있다는 제약이 있다.
for(타입 벼누명 : 배열 또는 컬렉션){ //반복할 문장 }
- while문
- while문은 조건식과 블럭으로 이루어져 있다. 조건식이 참인 동안, 조건식이 거짓이 될 때까지 블럭 내 문장을 수행한다. for문과 달리 조건식을 생략할 수 없다.
- do-while문
- do-while문은 do { } 내 문장을 먼저 수행한 후 조건식을 평가한다. while문은 조건식의 결과에 따라 한 번도 수행하지 않을 수 있지만, do-while문은 최소 한 번은 수행한다.
- break문
- break문은 자신이 포함된 가장 가까운 반복문을 벗어난다. 주로 if문과 함께 사용되어 특정 조건을 만족하면 반복문을 벗어나도록 한다.
- continue문
- continue문은 반복문 내에서만 사용될 수 있으며, 반복이 진행되는 도중에 continue문을 만나면 반복문의 끝으로 이동하여 다음 반복으로 넘어간다.
- 이름이 붙은 반복문
- break문은 자신이 포함된 가장 가까운 반복문, 단 하나만 벗어날 수 있기 때문에 여러 개의 반복문이 중첩된 경우 break문으로 중첩 반복문을 완전히 벗어날 수 없다. 이때는 중첩 반복문 앞에 이름을 붙이고 break문과 continue문에 이름을 지정해줌으로써 하나 이상의 반복문을 벗어나거나 반복을 건너뛸 수 있다.
- for문
'스터디플래너 > 공부하기' 카테고리의 다른 글
[Java] 클래스 및 기타 개념 정리 (0) 2022.02.01 [자바의 정석] Chapter05. 배열(Array) (0) 2022.01.30 [자바의 정석] Chapter03. 연산자 (0) 2022.01.02 [자바의 정석] Chapter02. 변수 (0) 2021.12.28 [자바의 정석] 자바를 시작하기 전에 (0) 2021.12.22 - 조건문 - if, switch