Class02(조건문, 반복문)
2022. 12. 26. 수업내용 정리
조건문, 반복문
IF 문
if
문은 어떠한 조건이 만족하는가(혹은 만족하지 않는가)의 여부에 따라 실행하고자 하는 코드를 달리하고자 할 때 사용한다.if
문:어떠한 조건에 대해서만 특정 코드(들)을 실행하고자 할 때 사용한다. 아래 코드에서 조건이 참(True
)일 때에만 실행할 코드를 실행한다.
if(조건) { //실생할 코드 }
if-else
문: 어떠한 조건에 대해 그 조건이 참(true
)인 경우와 거짓(false
)인 경우를 분기하고자 할 때 사용한다.if(조건) { // 조건이 참일 때 실행할 코드 } else { // 조건이 거짓일 때 실행할 코드 }
if-else
문은 참일 때의 코드 블럭 혹은 거짓일 때의 코드 블럭 중 하나가 반드시 실행됨에 유의한다.
if-else if
문: 어떠한 조건에 대해 그 조건이 참(true
)인 경우 및 거짓일 때에 다른 조건에 대해 참인 경우를 분기하고자 할 때 사용한다.if(조건1){ // 조건1dl 참(true)일 떄 실행할 코드 }else if(조건2) { // 조건1이 거짓()이고 조건2가 참(true)일 때 실행할 코드 }
- 위 코드에서 조건1이 참(true)일 때에는 조건2를 확인하지 않는다. 즉, 두 조건 모두 참이라 하더라도 먼저 참인 것이 확인되는 조건의 코드 블럭 하나만 실행한다.
- 위 코드는
else
문을 포함하고 있지 않기 때문에, 반드시 모든 경우에 하나의 코드 블럭이 실행된다고 할 수 없다. - 아래와 같이 하나 이상의
else-if
를 포함하는if
문을 작성할 수도 있다.if(조건1){ // 조건1이 참일 때 실행할 코드 }else if(조건2) { // 조건1이 거짓이고 조건2가 참일 때 실행할 코드 } else if(조건3) { // 조건1,2가 거짓이고 조건3이 참일 때 실행할 코드 } else if(조건4) { // 조건1,2,3이 거짓이고 조건4가 참일 때 실행할 코드 } ....
- 여러 개의
else-if
문을 사용했다 하더라도 예외없이 가장 위의 조건부터 확인하며, 어떠한 조건이 참이라면, 그 아래에 있는 조건은 확인하지 않고, 실행도 하지 않는다. - 위 코드 또한
else
문을 가지지 않음으로 그 어떤 코드 블럭도 실행되지 않을 가능성이 있다.
if-else if-else
문:if-else if
문과 동일하나 그 어떤 조건도 참이지 않을 때 사용할else
문을 가지는 구조이다.if(조건1){ // 조건1이 참일 때 실행할 코드 }else if(조건2) { // 조건1이 거짓이고 조건2가 참일 때 실행할 코드 } else if(조건3) { // 조건1,2가 거짓이고 조건3이 참일 때 실행할 코드 } else if(조건4) { // 조건1,2,3이 거짓이고 조건4가 참일 때 실행할 코드 } else { } ...
- 단,
else
는 항상 마지막에 하나만 올 수 있고,else
이 후에else-if
가 올 수 없다. - 위 코드는
if-else
문과 마찬가지로, 하나의 코드 블럭이 실행되는 것이 보장되어 있다.
FOR 문
for
문은 특정 동작(코드 블럭)을 반복하고자 할 때 사용한다.for(선언부; 조건부; 변수가감){ // 반복할 코드 }
for
문은 일반적으로 특정 정수형 변수의 값을 초기화하고 그 값을 가감하며 조건문의 해당 변수에 대한 조건이 참일 때 반복하게 하는 것이 일반적이다.- 선언부에서 선언된(혹은 초기화된) 변수의 값을 가감하며 조건부의 조건이 참일 때 아래 반복할 코드를 반복하여 실행한다.
- 가령, 1부터 3까지의 정수를 출력하기 위해 아래와 같이
for
문을 작성할 수 있다. - 변수 가감에는 전/후위 증감 연산자 혹은 복합 대입 연산자를 사용할 수 있다.
- 또한 변수 가감은 별도의 구문으로 인식됨으로 전위 증감과 후위 증감에 따른 반복에 차이가 없다.
for(int i = 1; i<=3; i++){ System.out.println(i); }
- 변수
i
가 1로 선언 및 초기화된다. - 조건부를 확인한다. 이 때 조건부의 조건은
i <= 3
인데 여기서i
가 1임으로 참()이 됨으로for
코드 블럭을 1회 실행한다. - 변수를 가감한다. 위 코드에서 가감 코드는
i++
임으로i
가 2가 된다. - 조건부를 확인한다. 이 떄 조건부의 조건은
i <= 3
이고 여기서i
가 2임으로 참()이 됨으로for
코드 블럭을 1회 실행한다.(2 출력) - 변수를 가감한다. 위 코드에서 가감 코드는
i++
임으로i
가 3이 된다. - 조건부를 확인한다. 이 때 조건부의 조건은
i <= 3
이고 여기서i
가 3임으로 참()이 됨으로for
코드 블럭을 1회 실행한다.(3출력) - 변수를 가감한다. 위 코드에서 가감 코드는
i++
임으로i
가 4가 된다. - 조건부를 확인한다. 이 때 조건부의 조건은
i <= 3
이고 여기서i
가 4임으로 거짓()이 됨으로for
문을 빠져나온다. (for
문 종료)
break
는 현재 실행 중인 가장 가까운for
문 등을 종료시키기 위해 사용하는 키워드이다.continue
는 현재 실행 중인 반복 사이클을 생략하고 다음 사이클로 넘어가기 위해 사용하는 키워드이다.
향상된 FOR문(Enhanced For)
- 향상된
for
문은 일반for
문과 달리 증감에 사용되는 변수(주로i
)를 사용하지 않고 배열을 반복할 수 있어ArrayIndexOutOfRangeException
등의 예외로 부터 벗어날 수 있는 이점이 있다. - 마찬가지로, 용법이 일반
for
문에 비해 사용하기 쉬운 이점이 있다. - 단, 증감에 사용되는 변수(
i
)를 직접 사용해야 할 때에는 향상된for
문을 사용하지 못한다. -
일반
for
문과 마찬가지로break
및continue
키워드를 이용할 수 있다.
int[] odds = {1, 3, 5, 7, 9}; for (int i = 0; i < odds.length; i++) { System.out.println(odds[i]); }
위 일반
for
문을 아래와 같이 향상된for
문으로 변경할 수 있다.int[] odds = {1, 3, 5, 7, 9}; for (int odd : odds) { System.out.println(odd); }
위 코드에서는
odds
정수 배열이 가지고 있는 정수인 요소 하나하나를 순서대로 정수인 변수odd
에 대입하여 반복하게 된다.
댓글남기기