반복문 (for문, while문, do-while문)
어떠한 작업을 반복적으로 수행해야 할 때 사용한다.
★★★
※ break문 : 자신이 포함된 가장 가까운 반복문을 벗어난다.
무한 반복문에서 프로그램 종료를 위해 자주 사용된다.
※ continue문 : 반복문의 끝으로 이동하여 다음 반복으로 넘어가도록 한다.
for문에서 사용 시, 증감식으로 이동
while문, do-while문에서 사용 시, 조건식으로 이동
→ break문과 continue문 모두 반복문에서만 사용 가능하다!!
① for문
작업의 반복 횟수를 알고있을 때 적합하다.
초기화, 조건식, 증감식, 블럭으로 이루어져 있다.
# 초기화 : 반복문에서 사용할 변수를 초기화하는 부분으로 처음 한번만 수행한다.
두개 이상의 변수(동일한 타입)가 필요한 경우 콤마(,)로 구분하여 나타낸다.
# 조건식 : 반복을 결정하는 식으로, 이 값이 참이면 반복을 계속하고, 거짓이면 반복을 중단한다.
# 증감식 : 반복문을 제어하는 변수의 값을 증가 or 감소시킨다.
public class exCode {
public static void main(String[] args) {
int sum = 0;
for (int i=0; i<10; i++){
sum += i;
System.out.println(sum);
}
}
}
[실행 결과]
★ 중첩된 for문
import java.util.Scanner;
public class exCode {
public static void main(String[] args) {
int line = 0;
System.out.print("줄의 수를 입력하세요 : ");
Scanner scan = new Scanner(System.in);
line = scan.nextInt();
for(int i=0; i<line; i++){
for(int j=0; j<=i; j++){
System.out.print("*");
}
System.out.println();
}
}
}
[실행 결과]
★ 향상된 for문
배열과 컬렉션에 저장된 요소들을 하나씩 순서대로 읽어온다.
public class exCode {
public static void main(String[] args) {
int[] array = {2, 4, 6, 8, 10};
for(int num : array){
System.out.printf("%d%n", num);
}
}
}
[실행 결과]
② while문
조건식과 블럭으로만 이루어져 있으며, 조건식이 거짓이 되면 조건문을 벗어난다.
for문과 서로 변환이 가능하다는 특징이 있으며, for문에 비해 조금 더 간결하게 표현이 가능하다.
※ for문과 달리 while문의 조건식은 생략 불가함!
import java.util.Scanner;
public class exCode {
public static void main(String[] args) {
// while문 예제 : 각 자리 숫자의 합을 구하기
int userNum = 0;
int sum = 0;
System.out.print("숫자를 입력하세요 : ");
Scanner scan = new Scanner(System.in);
userNum = scan.nextInt();
while (userNum!=0){
sum += userNum%10;
userNum /= 10;
}
System.out.printf("각 자리 숫자의 합은 %d이다.", sum);
}
}
[실행 결과]
③ do-while문
while문과 실행하는 구조는 같으나 순서만 거꾸로 되어있다.
블럭 내 문장들을 먼저 수행한 후에 조건식을 평가한다.
for문과 while문은 블럭이 한 번도 수행되지 않을 수 있지만, do-while문은 반드시 한 번은 수행한다.
import java.util.Scanner;
public class exCode {
public static void main(String[] args) {
// do-while문 예제 : 임의의 수를 사용자가 맞추기
int user = 0;
int answer = 0;
answer = (int)(Math.random()*50) + 1; // 1~50 사이 임의의 수를 저장
Scanner scan = new Scanner(System.in);
do {
System.out.print("1~50 사이의 정수 중 하나를 입력하세요 : ");
user = scan.nextInt();
if(user>answer){
System.out.printf("%d보다 작은 수 입니다.%n", user);
} else if(user<answer){
System.out.printf("%d보다 큰 수 입니다.%n", user);
}
} while (user!=answer);
System.out.println("정답입니다!");
}
}
[실행 결과]
'▶ JAVA > 개념정리' 카테고리의 다른 글
[Java] 9. 배열_예제 (0) | 2022.02.07 |
---|---|
[Java] 8. 배열 (0) | 2022.02.04 |
[Java] 6. 조건문 (0) | 2022.02.02 |
[Java] 5. 연산자(2) (0) | 2022.01.28 |
[Java] 4. 연산자(1) (0) | 2022.01.27 |