티스토리 뷰
<반복문 while>
- 수행문을 수행하기 전에 조건을 확인하고, 그 조건의 결과가 true인 동안 반복 수행
- 조건이 맞지 않으면 반복 수행을 멈춤
- 조건은 반복 횟수나 값의 비교의 결과에 따라 true, false 판단
while (조건식) {
//반복 수행 구문
}
예시1)
int i = 1;
while(i <= 10) {
System.out.println(i);
i++; // 무한 반복 멈춤
}
while의 조건식 i <= 10이 참일 동안 반복 수행함.
i는 1~10까지 1씩 증가하면서 출력됨.
예시2)
1부터 5까지 덧셈 연산을 하라.
boolean flag = true;
int start = 1;
int sum = 0;
while(flag) {
if(start == 5) {
flag = false;
}
sum += start;
System.out.println(sum);
start++;
}
start가 5까지 반복된 후 flag = false로 반복이 멈춘 후 sysout으로 내려가 sum이 출력됨.
while 내 구문에 복합대입 연산자를 활용하여 sum을 출력하면 1, 3, 6, 10, 15가 출력됨.
* start++; 가 sysout 보다 위에 있으면 1이 아닌 2부터 출력됨.(+1 상태로 값이 나옴.)
* while 구문은 구문 내의 마지막에 증감 연산자를 입력하여 무한 반복을 멈춰야 함!! *
또 다른 풀이(while문)
int sum = 0;
int i = 1;
while (i<=10) {
sum += i;
i++;
}
System.out.println("1~" + (i-1) + "합 :"+ sum);
예시 3)
소수 7이면 반복문을 멈추어라.(for문)
for(int i = 1; i < 11; i++) {
if(i % 7 == 0) {
break;
}
System.out.println(i);
}
if문의 변수 i가 7이며 break로 인해 반복문을 벗어나서 1~6까지 출력된다.
break 문이란? 반복문을 벗어날때 사용하며 실행되면 현재의 반복문을 벗어나게 된다. continue 문이란? 반복문에서 현재의 반복을 건너 뛰어서 다음 반복으로 넘어가게 된다. |
* continue 예시
for(int i = 1; i < 11; i++) {
if(i % 7 == 0) {
continue;
}
System.out.println(i);
}
7일때 출력하지 않고 다음 반복으로 넘어가
1~6, 8~10까지 출력됨.
예시 3-1)
소수 7이면 반복문을 멈추어라.(while문)
int i = 1;
while(i < 11) {
if(i % 7 == 0) {
break;
}
System.out.println(i);
i++;
}
단독 if 구문은 수행 안될 가능성 있음.
예시 4)
1 ~ 100까지의 수에서 만약 3의 배수라면 숫자를 출력하시오.(for문)
for(int i = 1; i < 101; i++) {
if(i % 3 == 0) {
System.out.println(i);
}
}
i를 3으로 나누었을 때 나머지가 0인 값 = 3의 배수
예시 4-1)
1 ~ 100까지의 수에서 3의 배수인 숫자를 출력하시오.(while문)
int i = 1;
boolean flag = true;
while (flag) {
if (i % 3 == 0) {
System.out.println(i);
}
if (i == 100) {
flag = false;
}
i++;
}
while문의 또 다른 풀이
int i =1;
while(i < 101) {
if(i % 3 == 0) {
System.out.println(i);
}
i++;
}
< do-while문>
위의 그림은 반복 수행 과정을 나타낸다.
do-while문이 처음 실행될 때 1. 실행문을 실행한 후 모두 실행되면 2. 조건식을 평가하는데 그 결과가 true면 1 -> 2 와 같이 반복 실행하고, 결과가 false 면 do-while문을 종료한다.
코드로 보자면
do {
// 반복 수행 구문
} while(조건식); //조건식이 flase인 경우 종료
이와 같다.
작성 시 while () 뒤에 반드시 세미콜론(;)을 붙여야 한다.
'Java' 카테고리의 다른 글
Java(함수/메서드) (0) | 2024.04.15 |
---|---|
Java(객체, 클래스, Scanner 클래스) (0) | 2024.04.15 |
Java(조건문 if, 반복문 for) (0) | 2024.04.11 |
Java(연산자 - 관계(비교), 논리, 빠른 평가, 삼항(조건)) (0) | 2024.04.10 |
Java(연산자 - 항, 대입, 부호, 증감과 감소, 복합 대입) (0) | 2024.04.09 |