▶현재 시간 : 2022년 10월 24일 12:44 a.m.
반복문 공부 시작!
▶반복문
-
- 현재 100명의 학생들 점수의 평균을 구해야 하는 상황에 쳐해있습니다! 100명의 학생의 점수를 일일히 더해서 평균을 낼 경우 더하는 연산과정을 하나하나 하기에는 너무나 오래걸립니다. 그렇다면 이렇게 단순, 반복의 과정을 간단하게 할 수는 없을까요? 그 방법이 바로 반복문입니다!
- 반복문에는 대표적으로 for 문과 while 문 그리고 do ~ while 문이 있습니다. 하나씩 살펴보도록 하죠.
- for문
for문의 형식은 다음과 같습니다. 초기값이 조건식에 위배되지 않을 경우 실행 코드를 한 바퀴 돌게 됩니다. 이후 증감식을 통해 얻어진 값으로 다시 한번 조건식에 위배되는지 확인합니다. 만약 위배되지 않을 경우 이전 과정을 반복하며 위배될 경우에 반복문이 끝납니다.
for(초기값 ; 조건식 ; 증감식){
실행 코드 블럭
}
int sum = 0;
for (int i = 0; i < 10; i++) {
sum += (i + 1);
}
System.out.println(sum);
1부터 10까지의 합을 구하는 예제입니다. 변수 i는 1부터 10까지 변할 때까지 1씩 더해집니다. i가 증감식에 의해 11이 되면 조건문에 위배되기 때문에 더이상의 반복문 실행은 진행 되지 않으며 출력됩니다.
- for - each문
for (String day : days) {
System.out.println(day);
}
배열의 값들이 하나씩 출력되었을 것입니다!. 즉, for-each문은 배열의 값들을 하나하나 변수에 담아서 출력한다고 생각하시면 됩니다!
- while문
while(조건식){
실행 코드 블럭
}
int i = 0;
int sum = 0;
while (i < 10) {
sum += i + 1;
i += 1;
}
System.out.println(sum);
위의 for 반복문과 똑같은 결과를 반환하는 예제입니다. i가 1,2,3,이렇게 증가하다 11이 되면 조건식에 부합하지 않기 때문에 while 반복문이 종료되고 출력이 되는것이죠!
만약, i+=1; 코드가 없다면 어떻게 될까요? i가 11이상이 되지 못하기 때문에 while문을 벗어나지 못하고 계속 반복될 것입니다. 이것을 무한 루프라고 합니다. while문을 작성할 때는 로직이 무한루프 상황에 빠지는지 한 번은 확인하셔야 합니다.
여기서 잠깐! 앞장의 switch문에서 잠깐 언급한 break를 알아보겠습니다. 바로 아래 예제를 한번 확인해보죠.
int i = 0;
while (i < 10){
if (i==5){
break;
}
i += 1;
}
System.out.println(i);
출력값이 무엇이 나오나요? 네! 바로 5가 나옵니다. while문 내부에 if문을 확인하면 '변수 i가 5일 경우 break를 한다' 라는 것을 확인하실 수 있습니다. 즉, break는 반복문을 더 이상 실행하지 않고 끝내는 역할을 한다는 것을 알 수 있습니다.
break와는 다르게 반복문을 계속 진행하는 것도 있습니다. 바로 continue라는 것입니다. 반복문을 진행하다가 continue가 있을 경우, 다시 반복문 코드 블럭의 처음 부분으로 돌아가서 진행합니다. 글로만 읽었을 때는 이해가 잘 안되시죠? 예제를 보면서 한번 이해를 해보도록 합시다!
for(int i=0;i<10;i++){
if (i==5){
continue;
}
System.out.println(i);
}
출력을 해보면 값이 어떻게 나오나요? 숫자 5만 빼고 0부터 9까지 출력이 됩니다. 즉, continue가 있을 경우 아래의 코드를 실행하지 않고 다시 반복문의 시작 부분으로 돌아가는 것입니다!
- do-while문
int i = 1;
int result = 0;
do {
result += i;
i += 1;
} while (i < 2);
System.out.println(result);
- 이상합니다.. while문의 조건에는 변수 i가 2보다 작아야한다고 되어있는데, result변수에는 변수 i의 값 1이 더해져서 출력됩니다.
- 바로 여기서, do-while문과 while문의 차이가 나타납니다. while문은 조건식에 부합할 경우 코드 블럭을 실행하지만, do-while문은 일단 코드 블럭을 무조건 한번 실행한 후, while문의 조건을 비교합니다.
- 즉, while문의 조건을 확인하기 이전에 do 내부의 코드블럭을 한 번 시행한 후, 그 이후에는 while문의 조건에 일치하지 않으므로 더이상의 실행은 하지않고 출력을 하게 되는 것입니다.
▶반복문 퀴즈 1: 1부터 100까지의 합을 구하는 반복문 코드를 작성해보세요.
public class Main {
public static void main(String[] args) {
// write your code here
}
}
- 답안
int result = 0;
for (int i = 0; i < 100; i++) {
result += i+1;
}
System.out.println(result);
▶반복문 퀴즈 2: 5초부터 시작하는 카운트다운을 반복문을 사용하여 만들어보세요.
public class Main {
public static void main(String[] args) {
// write your code here
}
}
- 답안
for (int i = 5; i >= 0; i--) {
System.out.println("카운트 다운 : " + i);
}
▶조건문 & 반복문 퀴즈 1: 1부터 30까지 홀수의 합과 짝수의 합을 구하고 각각 출력하는 프로그램을 만들어보세요.
public class Main {
public static void main(String[] args) {
// write your code here
}
}
- 답안
public class Main {
public static void main(String[] args) {
// write your code here
int sumEven = 0;
int sumOdd = 0;
for (int i = 0; i < 30; i++ ){
int value = i + 1;
if (value % 2 == 0){
sumEven += value;
} else {
sumOdd += value;
}
}
System.out.println("Even :" + sumEven);
System.out.println("Odd :" + sumOdd);
}
}
'Java' 카테고리의 다른 글
Java - 객체지향언어(생성자) (0) | 2022.10.25 |
---|---|
Java - 객체지향언어(클래스, 인스턴스, 메소드) (0) | 2022.10.25 |
Java - 조건문 (0) | 2022.10.24 |
Java - 연산자 (0) | 2022.10.23 |
Java - 참조 자료형, 배열 (0) | 2022.10.22 |