● 제어문
2. 반복문
(2) while문
while(조건식) {
반복할문장;
}
while문바깥문장;
※ While문
1. while문을 만나면 조건식을 확인한다.
2. 조건식이 참이라면 while문 안으로 들어와서 코드를 실행한다.
3. while문 닫는 중괄호를 만나면 다시 조건식으로 이동한다.
→ 조건식이 참이라면 계속하고, 아니라면 반복을 그만둔다.
※ for문 vs while문
- for문 : 몇 번 반복해야 할지 알 때 사용하면 좋다.
- while문 : 몇 번 반복해야 할지 모를 때 사용하면 좋다.
(3) do ~ while문
do{
최초한번은조건식관계없이실행될문장;
....
} while(조건식);
- do 영역은 최초 한 번은 조건식 관계없이 실행되고, 그 이후에는 조건식의 결과에 따라 반복 여부가 결정된다.
※ continue
- 자기 자신을 감싸고 있는 가장 가까운 반복문에서 즉시 다음 반복을 실행한다.
※ break
- 자기 자신을 감싸고 있는 가장 가까운 반복문을 종료(탈출)한다.
실습(while문)
1. 반복문 안의 문장과 바깥 문장 출력하기
- for문
public class WhileTest {
public static void main(String[] args) {
for(int i = 0; i < 3; i++) {
System.out.println("for문 안의 문장");
}
System.out.println("for문 바깥 문장");
}
}
![](https://blog.kakaocdn.net/dn/buYeKz/btrpxwnDI8l/k3MpjVpEhTAqGCyvKuBRak/img.png)
- while문
public class WhileTest {
public static void main(String[] args) {
int i = 0;
while(i < 3) {
System.out.println("while문 안의 문장");
i++; // i = i + 1;
}
System.out.println("while문 바깥 문장");
}
}
![](https://blog.kakaocdn.net/dn/059aI/btrpBCas2Hh/PywcvBcUYV1Rlhym7ZW6k1/img.png)
2. 사용자가 '3. 마감하기'를 입력할 때까지 무한 반복 입력받기
import java.util.Scanner;
public class WhileTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("안녕하세요");
System.out.println("1. 주문하기 2. 결제하기 3. 마감하기");
int choice = sc.nextInt();
if(choice == 3) {
break; // break는 즉시 자신을 감싸고 있는 가장 가까운 반복문을 종료한다.
}
}
}
}
![](https://blog.kakaocdn.net/dn/slH4H/btrpBCuL82V/7evmKO2keXM7cRubRtwtK1/img.png)
실습(while문 + do~while문)
1. 사용자가 '3. 종료하기'를 입력할 때까지 무한 반복 입력받기
- if문을 이용하여 조건식 작성하는 방법
import java.util.Scanner;
public class DoWhileTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int choice = 0; // choice 변수 초기화
while(true) {
System.out.println("1. 송금하기 2. 인출하기 3. 종료하기");
choice = sc.nextInt();
if(choice == 3) {
break;
}
}
}
}
![](https://blog.kakaocdn.net/dn/bvRjVm/btrpGzK0P7A/2E0ijMTopzyHOh9S5Cbt70/img.png)
- != 를 이용하여 조건식 작성하는 방법
import java.util.Scanner;
public class DoWhileTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int choice = 0; // choice 변수 초기화
while(choice != 3) {
System.out.println("1. 송금하기 2. 인출하기 3. 종료하기");
choice = sc.nextInt();
}
}
}
![](https://blog.kakaocdn.net/dn/05Mo9/btrpz1t6yY8/Ndyvbxe2nQmUYVIhr4iST0/img.png)
2. do~while(변수의 초기화값과 입력하는 값이 동일한 경우 사용)
import java.util.Scanner;
public class DoWhileTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int choice = 0; // choice 변수 초기화
do {
System.out.println("1. 송금하기 2. 인출하기 0. 종료하기");
choice = sc.nextInt();
} while(choice != 0);
}
}
![](https://blog.kakaocdn.net/dn/cRsd2s/btrpJWS2Nlw/umXzSppWCoeV9H4RIUuUc0/img.png)