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에 대입하여 반복하게 된다.
댓글남기기