반복문
주어진 조건이 참을 충족하는 동안 블록 안의 실행문을 반복해서 수행하는 문법.
#01. while문 (보통)
1) 기본 구문 형식
주어진 조건식이 참인 동안 블록 안을 반복적으로 수행한다.
while (조건) {
... 반복적으로 수행할 구문 ...
}
2) 반복문의 조건이 성립하기 위한 구성
초기식; // (1) 조건식을 판별하기 위한 기준값을 생성한다.
while (조건식) { // (2) (5) 조건을 판별한다.
... 반복적으로 동작할 구문 ... // (3) 명령을 수행한다.
증감식; // (4) 기분값에 변화를 주고 다시 조건식으로 이동한다.
}
While1.java 예제
public class While1 {
public static void main(String[] args) {
// 초기식
int x = 0;
// 조건식 -> x가 10보다 작은 동안 반복수행
while (x < 10) {
// 반복이 진행되는 동안 수행할 명령
// --> 여기서는 x의 변화 과정을 출력한다.
System.out.printf("x=%d\n" , x);
// 증감식 -> 조건에 사용되는 값을 변경
x++;
}
System.out.println("----------------------------");
System.out.printf("x의 최종값: %d\n", x);
}
}
While2.java 예제
import java.util.Scanner;
public class While2 {
public static void main(String[] args) {
// 총합을 구하기 위해서는 값을 누적 합산할 변수를 0으로 초기화 하고 시작해야 한다.
int sum = 0;
//초기식
int i = 1;
while( i < 11) {
// sum에 i의 값이 1부터 10까지 변하는 동안 누적합산 한다.
sum += i;
// 중간과정 출력
System.out.printf("i=%d, sum=%d\n", i, sum);
// i값을 1씩 증가한다.
i++;
}
}
}
While3.javaㅇ 예제
import java.util.Scanner;
public class While3 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int i = 1; // 차례대로 곱해져갈 수 i를 1부터 시작하게 설정
System.out.print("숫자를 입력하세요(2~9): ");
int num = reader.nextInt();
while(i < 10) {
System.out.printf("%d x %d = %d\n", num, i, num*i);
i++;
} // 반복문을 돌려 차례대로 곱셈을 해주고 증감연산자로 i를 9까지 돌려준다
}
}
출력결과
숫자를 입력하세요(2~9): 7
7 x 1 = 7
7 x 2 = 14
7 x 3 = 21
7 x 4 = 28
7 x 5 = 35
7 x 6 = 42
7 x 7 = 49
7 x 8 = 56
7 x 9 = 63
While4.java 예제
import java.util.Scanner;
public class While4{
public static void main(String[] args) {
Scanner read = new Scanner(System.in);
System.out.print("x의 값을 입력하세요: ");
int x = read.nextInt();
System.out.print("y의 값을 입력하세요: ");
int y = read.nextInt();
int sum = 0;
while(x<=y){
sum += x;
x++;
}
System.out.printf("x부터 y의 총합은 %d\n", sum);
}
}
출력결과
x의 값을 입력하세요: 1
y의 값을 입력하세요: 10
x부터 y의 총합은 55
#02. do-while문 (안중요)
while문은 조건의 성립 여부에 반복 수행을 결정하므로 만약 조건이 처음부터 거짓이라면 한번도 수행하지 않는다.
int a= 10;
while(a < 10) {
// 이블록은 한번도 실행되지 않는다.
}
do-while문은 선실행, 후판별 형태로 구성된다.
일단 {}
안의 구문을 1회 실행하고 나서 조건을 판별하여 계속 수행할지 여부를 판단한다.
int i = 0;
do {
/* ... 반복 실행될 구문 ... */
i++; // 증감식
} while ( i < 10); // 조건식
만약 아래와 같이 조건이 거짓이더라도 우선 한번은 실행한 후 조건을 판별하기 때문에 do-while문은 최소 한 번은 실행한다.
int a = 10;
do {
// 이 블록은 한 번만 실행된다.
} while ( a < 10);
개인적으로 한 번도 사용해 보지 않았습니다. do-while문이 존재하지 않는 언어도 많습니다.
#03. for문 (매우 중요)
초기식, 조건식, 증감식을 하나의 괄호안에 모두 명시하는 형태. while이나 do-while보다 반복에 필요한 요건을 한 눈에 파악할 수 있긱 때문에 훨씬 간결하다.
for (초기식; 조건식; 증감식) {
/* 반복 실행할 구문 */
}
For1.java
0부터 10보다 작은 동안 1씩 증가하는 변수값의 변화과정 확인하는 예제
public class For1 {
public static void main(String[] args) {
for (int i=0; i < 10; i++) {
System.out.printf("i=%d\n", i);
}
}
}
출력결과
i = 0
i = 1
i = 2
i = 3
i = 4
i = 5
i = 6
i = 7
i = 8
i = 9
For2.java
1부터 10까지의 총 합을 구하는 프로그램
public class For2 {
public static void main(String[] args) {
// 총합을 구하기 위해서는 갑승ㄹ 누적 합산할 변수를 0으로 초기화 하고 시작해야 한다.
int sum = 0;
for (int i = 1; i < 11; i++) {
//sum에 i의 값이 1부터 10까지 변하는 동안 누적합산 한다.
sum += i;
// 중간과정 출력
System.out.printf("i=%d, sum=%d\n", i, sum);
}
}
}
출력결과
i=1, sum=1
i=2, sum=3
i=3, sum=6
i=4, sum=10
i=5, sum=15
i=6, sum=21
i=7, sum=28
i=8, sum=36
i=9, sum=45
i=10, sum=55
For3.java
public class For3 {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
int i = 1;
System.out.print("숫자를 입력하세요(2~9): ");
int num = reader.nextInt();
for(i=1; i < 10; i++) {
System.out.printf("%d x %d = %d\n", num, i, num*i);
}
}
}
출력결과
숫자를 입력하세요(2~9): 4
4 x 1 = 4
4 x 2 = 8
4 x 3 = 12
4 x 4 = 16
4 x 5 = 20
4 x 6 = 24
4 x 7 = 28
4 x 8 = 32
4 x 9 = 36
For4.java
public class For4{
public static void main(String[] args) {
Scanner read = new Scanner(System.in);
System.out.print("x의 값을 입력하세요: ");
int x = read.nextInt();
System.out.print("y의 값을 입력하세요: ");
int y = read.nextInt();
int z = x;
int sum = 0;
for(x=x; x<=y; x++){
System.out.printf("%d + %d\n", sum, x);
sum += x;
}
System.out.printf("%d부터 %d의 총합은 %d\n", z, y,sum);
}
}
출력결과
x의 값을 입력하세요: 1
y의 값을 입력하세요: 10
0 + 1
1 + 2
3 + 3
6 + 4
10 + 5
15 + 6
21 + 7
28 + 8
36 + 9
45 + 10
1부터 10의 총합은 55
'코딩 공부 > Java' 카테고리의 다른 글
[Java] 09_형변환 (0) | 2020.05.08 |
---|---|
[Java] 08_기본문법활용 (0) | 2020.05.08 |
[Java] 06_조건문 (0) | 2020.05.08 |
[Java] 05_기본입출력 (0) | 2020.05.08 |
[Java] 04_연산자 (0) | 2020.05.08 |