- for문은 반복 횟수를 알고 있을 때 주로 사용한다.
- while문은 조건에 따라 반복할 때 주로 사용한다.
- while문과 do-while문의 차이점은 조건을 먼저 검사하느냐 나중에 검사하느냐일 뿐 동작 방식은 동일하다.
4.3.1 for문
int sum = 0;
for (int i=1; i<=100; i++) {
sum += i;
}
System.out.println("1~100까지의 합: " + sum);
실행 순서:
1 → 2 (true이면) → 3 → 4 → 2
1 → 2 (false이면) → 종료
초기화식이 필요 없을 경우, 아래와 같이 생략이 가능하다.
int i = 1;
for(;i<=100; i++){}
초기화 식이 둘 이상일 경우에는 쉼표로 구분해서 작성한다.
for(int i=0, j=100; i<=50 && j>=50; i++, j--){}
※ for문을 작성시 주의 점
초기화식에서 변수 선언할 때 부동소수점 타입을 사용하면 안된다. 0.1은 float 타입으로 정확하게 표현할 수 없기 때문이다.
4.3.2 while문
조건식에는 비교 또는 논리 연산식이 주로 오는데, 조건식이 false가 되면 반복 행위를 멈추고 while문을 종료한다.
실행 순서:
1 → 2 (true이면) → 1
1 → 2 (false이면) → 종료
1~10까지 합 구하기 코드
int sum = 0;
int i = 1;
while (i<=10) {
sum += i;
i++;
}
System.out.println("1~10까지의 합: " + sum);
4.3.3 do-while문
주의 할 점은 while() 뒤에 반드시 세미콜론을 붙여야 한다.
실행 순서:
1 → 2 (true이면) → 1
1 → 2 (false이면) → 종료
키보드로부터 문자열을 입력받고 출력시킨다. 먼저 콘솔에서 입력한 문자열을 읽는 방법에 대해 알아보자. System.in.read() 메소드는 하나의 키 코드만 읽기 때문에 콘솔에 입력된 문자열을 한 번에 읽을 수 없다. 대신 다음과 같이 Scanner 객체를 생성하고 nextLine() 메소드를 호출하면 콘솔에 입력된 문자열을 한 번에 읽을 수 있다. nextLine() 메소드로 읽은 문자열을 저장하기 위해서는 String 변수가 필요한데 아래 코드에서는 inputString 변수에 저장했다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("메시지를 입력하세요");
System.out.println("프로그램을 종료하려면 q를 입력하세요");
Scanner scanner = new Scanner(System.in);
String inputString = scanner.nextLine();
do{
System.out.println(">");
inputString = scanner.nextLine();
System.out.println(inputString);
} while(!inputString.equals("q"));
System.out.println();
System.out.println("프로그램 종료");
}
}
4.3.4 break문
반복문인 for문, while문, do-while문을 실행 중지할 때 사용된다. break문은 대개 if문과 같이 사용되어 if문의 조건식에 따라 for문과 while문을 종료할 때 사용한다.
import java.util.Scanner;
public class Main {
public static void main(String[] args) throws Exception{
while(true) {
int num = (int)(Math.random()*6) +1;
System.out.println(num);
if(num == 6){
break;
}
}
System.out.println("프로그램 종료");
}
}
만약 반복문이 중첩되어 있을 경우 break문은 가장 가까운 반복문만 종료하고 바깥쪽 반복문은 종료시키지 않는다. 중첩된 반복문에서 바깥쪽 반복문까지 종료시키려면 바깥쪽 반복문에 이름을 붙이고 "break 이름;"을 사용하면 된다.
4.3.5 continue문
continue문은 반복문인 for, while문, do-while문에서만 사용되는데, 블록 내부에서 continue문이 실행되면 for문의 증감식 또는 while문, do-while문의 조건식으로 이동한다. continue문도 대개 if문과 같이 사용되는데, 특정 조건을 만족하는 경우에 continue문을 실행해서 그 이후의 문장을 실행하지 않고 다음 반복으로 넘어간다. 다음은 continue문의 실행 흐름을 보여준다.
1에서 10 사이의 수 중에서 짝수만 출력하는 코드
public class Main {
public static void main(String[] args) throws Exception {
for(int i=1; i<=10; i++) {
if (i % 2 != 0) {
continue;
}
System.out.println(i);
}
}
}
'언어 > JAVA' 카테고리의 다른 글
[chapter3] 확인문제 (0) | 2023.01.16 |
---|---|
[chapter4] 확인문제 (0) | 2023.01.16 |
[제어문] 조건문(if문, switch문) (0) | 2023.01.16 |
[연산자] 비트 논리/이동 연산자, 대입/삼항 연산자, 연산의 우선순위 (0) | 2023.01.14 |
[연산자] 정확한 계산, NaN과 Infinity, 비교 연산자, 논리 연산자 (2) | 2023.01.14 |