- Do it! 자바 프로그래밍 입문 온라인 강의를 수강하며 작성하였습니다.
- Section 0. 자바 기본 익히기
- 8강 "제어의 흐름 이해하기(2)"
- 반복문 > while문 > do-while문 > for문 > 무한 반복 > 중첩 반복문 > continue문 > break문
while(조건문){
수행문1;
수행문2;
}
while문의 기본 문법이며, 무한 루프가 돌지 않도록 수행문 안에 조건문이 벗어날 수 있도록 코딩해주어야 한다.
public class WhileExample {
public static void main(String[] args) {
int num = 1;
int sum = 0;
while(num <= 10) {
sum += num;
num++;
}
System.out.println("num : " + num);
System.out.println("sum : " + sum);
}
}
while문을 통해 1부터 10까지 더하는 코드를 작성해 보았다.
num이 11이 되어 while문을 벗어났고, sum은 55로 정상 출력되었다.
do{
수행문1;
수행문2;
} while(조건식);
do-while문의 기본 문법이며, while문과 다르게 조건식을 만족하지 않더라도 do에 쓰여있는 수행문이 무조건 한 번 수행되고, 조건식이 참일 경우 다시 do에 쓰여있는 수행문이 수행된다.
public class WhileExample {
public static void main(String[] args) {
int num = 1;
int sum = 0;
do {
sum += num;
num++;
}while(num < 1);
System.out.println("do-while문의 결과는 " + sum + "입니다.");
}
}
while에 쓰여있는 조건식이 거짓이지만 do에 쓰인 수행문이 한 번 수행되어 sum의 값이 1인 것을 확인할 수 있다.
for(초기화식; 조건식; 증감식){
수행문1;
수행문2;
}
for문의 기본 문법이며, 초기화식의 변수는 for문 밖에서 선언할 수도 있고, 초기화식을 쓰면서 선언할 수도 있다.
최초에 한 번만 초기화식을 수행하고, 그 후로는 조건식이 참이면 수행문을 수행한 후 증감식이 수행되는 것을 반복하다가 조건식이 거짓이면 for문을 벗어난다.
public class ForExample {
public static void main(String[] args) {
int sum = 0;
for(int num=0; num<=10; num++) {
sum += num;
}
System.out.println("sum : " + sum);
}
}
위 코드는 while문 예시와 똑같이 작동하며, 변수 num은 초기화식에서 선언했기 때문에 for문을 벗어난 곳에서는 사용할 수 없다.
while(true){
수행문;
}
do{
수행문;
}while(true);
for(;;){
수행문;
}
위 코드들은 무한 반복을 수행하는 코드이다. 무한 반복은 주로 while문을 이용한다.
public class TimesTableExample {
public static void main(String[] args) {
for(int dan = 2; dan <= 9; dan++) {
for(int times = 1; times <= 9; times++) {
System.out.println(dan + "X" + times + "=" + dan*times);
}
System.out.println();
}
}
}
for문을 이용하여 구구단을 출력하는 코드이다. 출력 결과는 너무 길어서 생략한다.
이것을 while문으로 작성한 코드는 다음과 같다.
public class TimesTableExample {
public static void main(String[] args) {
int dan = 2;
int times = 1;
while(dan <= 9) {
times = 1; //내부 while문이 수행되기 위해 times를 초기화
while(times <= 9) {
System.out.println(dan + "X" + times + "=" + dan*times);
times++;
}
dan++;
System.out.println();
}
}
}
while문으로 작성하면 코드도 길어지고, 내부 반복문을 수행하기 위해 초기화를 별도로 해줘야 한다는 점, 조건식을 벗어나기 위한 코드도 별도로 작성해줘야 하는 점 등이 불편했다.
public class ContinueExample {
public static void main(String[] args) {
int total = 0;
for(int num = 1; num <= 100; num++) {
if(num%2 == 1) {
continue; //num이 홀수인 경우 증감식을 수행함
}
total += num;
}
System.out.println(total);
}
}
continue를 이용해 반복문에서 짝수만 모두 더하는 코드를 작성해보았다.
public class BreakExample {
public static void main(String[] args) {
int num=1;
int sum = 0;
while(true) {
sum += num;
if(sum >= 100) {
break;
}
num++;
}
System.out.println("num : " + num);
System.out.println("sum : " + sum);
}
}
위 코드는 1부터 몇까지 더했을 때 총합이 100이 넘는지 확인하는 코드이다.
break문을 통해 sum이 100이 넘으면 반복문을 벗어나게 할 수 있다.