무한 반복문(While)
while은 보통 무한 반복을 실행하다가 특정 조건이 되면 탈출하도록 한다.
채팅이나 게임 등 무한 반복 로직에서 활용한다.
while(조건식) {
조건식이 참이면 계속 실행하는 부분
}
예제 01. 반복문
package may24;
import java.io.IOException;
public class While01 {
public static void main(String[] args) throws IOException {
boolean exit = true;
while ( exit ) {
System.out.println("조건식이 참이면 돕니다.");
System.out.println("멈출까요?(Y/N)");
char input = (char) System.in.read();
System.in.read(); // 엔터도 == \n \r
System.in.read(); // 이 문장은 엔터키 처리입니다.
if(input == 'Y' || input == 'y') {
exit = !exit; // 참<->거짓 으로 바뀌는 것은 이렇게 표현
System.out.println("종료합니다.");
}
}
System.out.println("While문 아래 출력문 입니다.");
}
}
- 이렇게 참/거짓과 같이 반대 속성으로 바뀌는 경우 exit = !exit; 와 같이 표현하는 것이 효율적인 듯 하다.
출력결과:
조건식이 참이면 돕니다.
멈출까요?(Y/N)
n
조건식이 참이면 돕니다.
멈출까요?(Y/N)
y
종료합니다.
While문 아래 출력문 입니다.
예제 02. 반복문
package may24;
public class While02 {
public static void main(String[] args) {
// 3번만 출력하게 해주세요.
int count = 0;
while (count < 3) {
System.out.println("While문 실행중입니다.");
count++;
}
}
}
출력결과:
While문 실행중입니다.
While문 실행중입니다.
While문 실행중입니다.
예제03. 숫자 맞추기 게임
package may24;
import java.util.Scanner;
//while을 사용한 숫자게임
public class While03 {
public static void main(String[] args) {
// 사용자 입력
Scanner sc = new Scanner(System.in);
System.out.println("숫자게임");
//컴 두자리 숫자 뽑기
int com = (int) (Math.random()*99+1);
System.out.println(com);
//while로 비교
int input=0;
int count=0;
while(input != com) {
System.out.print("숫자 입력: ");
input = sc.nextInt();
if(input < com) {
System.out.println("up");
}
if(input > com) {
System.out.println("down");
}
count++;
}
System.out.println("축하합니다. " + count + "번 만에 맞추셨습니다.");
//up/down, 일치하면 "축하합니다" 프로그램 종료
//몇 번 시도 했는지 프로그램 종료 후 출력
}
}
실행결과:
숫자게임
정답: 15
숫자 입력: 10
up
숫자 입력: 20
down
숫자 입력: 14
up
숫자 입력: 15
축하합니다. 4번 만에 맞추셨습니다.
do~while 문
기본 while문과 다르게 무조건 한 번 실행하고 다음에 조건문에 따라서 반복하게끔 하는 반복문이다.
while문은 조건식이 거짓이면 한 번도 안 돌지만 do~while문은 무조건 한 번은 도는 형태를 가지고 있다.
public static void main(String[] args) {
do {
//조건식이 참일 때 실행할 문장;
System.out.println("조건식이 거짓이라도 무조건 한 번은 실행");
} while (!true);
}
▲ do while 문의 기본 형태
예제 01. 정해진 구간 내의 숫자 계속 입력받기
do {
System.out.println("자바 점수를 입력하세요.");
java = sc.nextInt();
} while (java < 0 || java > 100); //0~100
do {
System.out.println("jsp 점수를 입력하세요.");
jsp = sc.nextInt();
} while (jsp < 0 || jsp > 100); //0~100
'BackEnd > Java' 카테고리의 다른 글
[Java] 다차원 배열 Multi Array (0) | 2021.07.01 |
---|---|
[Java] 배열 Array (0) | 2021.07.01 |
[Java] 스위치 Switch (0) | 2021.07.01 |
[Java] 반복문 for (0) | 2021.07.01 |
[Java] 조건문 if (0) | 2021.07.01 |
댓글