💡 학습 목표 while 문에 대한 이해 무한 루프를 조심하자 |
while문
수행문을 수행하기 전 조건을 체크하고 그 조건의 결과가 true인 동안 반복 수행
조건이 참(true)인 동안 반복수행하기
- 주어진 조건에 맞는 동안(true) 지정된 수행문을 반복적으로 수행하는 제어문
- 조건이 맞지 않으면 반복하던 수행을 멈추게 됨
- 조건은 주로 반복 횟수나 값의 비교의 결과에 따라 true, false 판단 됨
while 문 예제
1.
package basic.ch04;
public class WhileTest1 {
// 코드 시작점
public static void main(String[] args) {
// 1 부터 10까지 콘솔창에 숫자를 출력하고 싶어
// System.out.println(1);
// System.out.println(2);
// System.out.println(3);
// System.out.println(4);
// System.out.println(5);
// System.out.println(6);
// System.out.println(7);
// System.out.println(8);
// System.out.println(9);
// System.out.println(10);
// x <= 10
int i = 1;
while(i <= 10) {
System.out.print(i);
// while 구문은 조건식에 처리가 없다면 무한이 반복된다.
i++;
// i = i + 1;
// i += 1;
} // end of while
} // end of main
} // end of class
2.
package basic.ch04;
import java.util.Scanner;
public class WhileTest2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 특정 조건일 때 반복문을 종료 시켜보자.
boolean flag = true; // 깃발
int start = 1;
int end = 3;
while(flag) {
if(start == end) {
System.out.println("if 구문이 동작함");
flag = false;
return;
}
System.out.println("start : " + start);
start++;
} // end of while
}
}
// 식을 어찌 작성하느냐에 따라서 작동되는지 파악하고
// 특정 조건 반복 종료는 if문과 같이 쓰게 된다
// 중간에 종료하고 싶으면 return을 쓴다.
연습문제
1 부터 10까지 덧셈에 연산을 콘솔창에 출력 하시오 단, while 구문 작성
package basic.ch4;
public class WhileTest3 {
public static void main(String[] args) {
int i = 1;
int sum = 0;
while(i <= 10) {
sum = sum + i;
i++;
System.out.println("1~10 합 과정 : " + sum);
}
System.out.println("총합의 결과 " + sum);
}
}
정리 코드 (찬찬히 뜯어봐라)
package basic.ch04;
public class WhileTest2_1 {
public static void main(String[] args) {
// 1부터 5까지 덧셈 연산을 하라
// 1 + 2 + 3 + 4 + 5
int start =1; // 시작값은 1
int end = 5; // 5번
int sum = 0;
boolean flag = true;
// 첫번째 반복
// 6번째
// 6 <= 5 --> 거짓 --> 반복문 종료
// 특정 조건식을 만들어 반복문을 멈추게 해야한다.
// 만약 start 값이 10일 때 종료하라
while(flag) {
if(start == 10) {
// 실행에 제어권을 반납한다.
flag = false;
//return이 반납하여 10은 못하기에 주석처리
//return;
}
// 1: 1 = 0 + 1 ==> sum : 1
// 2: 1 + 2 ==> sum : 3
// 3: 3 + 3 ==> sum : 6
// 4: 6 + 4 ==> sum : 10
// 5: 10 +5 ==> sum : 15
sum = sum + start;
System.out.println("sum("+start+"): " + sum);
start++; // 1씩 증가
}
}
}
do-while
- 조건과 상관 없이 한번은 수행문을 수행
- whlie문은 조건을 먼저 체크하고 반복 수행이 된다면 do-while은 조건과 상관 없이 수행을 한번 하고나서 조건을 체크
※ 추가설명 : 먼저 블록 안의 문장을 실행하고 나서 조건을 검사하기 때문에 블록 안의 문장이 적어도 한번은 실행된다.
![](https://blog.kakaocdn.net/dn/ee2WSI/btsGzGmHcm3/7VPiI2ARnpXjGcnHKEk6k1/img.png)
do-while 예제
- 입력받는 모든 숫자의 합을 구하는 예제 단, 입력이 0이 되면 반복을 그만하고 합을 출력
package basic.ch04;
import java.util.Scanner;
public class DoWhile1 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int input;
int sum = 0;
do { // 반복문장
input = sc.nextInt();
sum += input;
} while (input != 0); // 조건이 참이면 반복을 계속한다.
System.out.println(sum);
}
}
'Java > JAVA 1 - 기초문법' 카테고리의 다른 글
반복문과 조건문 { 연습문제 } (0) | 2024.04.12 |
---|---|
JAVA - break, continue 사용 (0) | 2024.04.12 |
JAVA - 반복문( for ) (0) | 2024.04.11 |
JAVA - 조건문 if(만약... 이라면) (0) | 2024.04.11 |
JAVA - 연산자(관계, 논리, 빠른평가, 삼항) (1) | 2024.04.09 |