[Java/자바] 제어문_(4)while , do-while반복문
안녕하세요~ 오늘은 반복문 중의 하나인 while반복문과 Do-while반복문에 대하여 알아보겠습니다~
while반복문이란?
"조건이 참일 동안에 ~명령을 반복해라"라는 의미를 갖고 있습니다.
while 반복문의 구조
while(조건식){
반복할 명령
}
조건식의 조건이 참일 동안에 { } 안의 명령을 반복해라
while반복문의 조건식 안에는 true혹은 false의 결과 값을 갖는 식이 들어갑니다.
while문 사용하는 방법
- while문에서 사용할 변수를 먼저 생성해 주어야 합니다.
- 조건식에서 변수의 범위를 설정해 줍니다. 조건식에 변수의 범위를 작성 안 할 시 무한 반복 while문이 실행됩니다.
- 반복할 실행문을 작성해 줍니다.
- 변수의 값을 변화할 증감식을 작성합니다.
단, while문의 조건이 거짓이라면, 단 한 번도 실행을 하지 않습니다.
while문 예시
public class WhileEx {
public static void main(String[] args) {
int x=1;
while(x<=10){
System.out.println("x:"+x);
x++;
}
}
}
우선 for문과는 다르게 while문은 while문 밖에 변수의 생성과 초기화를 해줍니다.
그 뒤로 while(x <=10)이라는 범위를 설정해줍니다.
while의 조건식이 참일 때 실행할 실행문입니다.=> System.out.println("x:"+x);
x++; 1씩 증가하는 증감식입니다.
따라서 x는 10까지 증가를 하고 while문을 종료하겠네요.
출력 결과
x라는 변수가 1에서 시작하여 1씩 증가해 10까지 출력된 모습을 볼 수 있네요.
while문 예시_2
이번 예시 코드는 랜덤으로 숫자를 변수에 넣어 사용자가 맞추는 프로그램을 만들어볼까 합니다.
사용자가 랜덤으로 나온 변수보다 낮게 입력한다면 "Up!!"이라는 출력문을
높게 입력한다면"Down!!"이라는 출력문
변수를 맞추었다면 "정답"이라는 출력문을 나오게 할 수 있는 프로그램을 작성해보도록 해보았습니다.
import java.util.Random;
import java.util.Scanner;
public class While2 {
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
Random random= new Random();
int User=0;
int rnum=random.nextInt(100)+1;
while(rnum!=User) {
System.out.println("숫자 입력:");
User=sc.nextInt();
if(User<rnum) {
System.out.println("Up!!");
}
else if(User>rnum) {
System.out.println("Down!!");
}
else {
System.out.println("정답");
}
}
}
}
1.
우선적으로 Rnadom변수를 적용하기 위해 Random 클래스를,
사용자의 입력을 받기 위해 Scanner클래스를 import 해줍니다.
import java.util.Random;
import java.util.Scanner;
2.
Random클래스와 Scanner클래스를 사용하기 위해 객체를 생성해 줍니다. 그리고 while문에서 사용할 User변수와 1~100의 범위인 숫자를 랜덤으로 넣어준 rnum 변수를 생성해 줍니다.
Scanner sc= new Scanner(System.in);
Random random= new Random();
int User=0;
int rnum=random.nextInt(100)+1;
3.
while문을 만들어 ( rnum!=User ) 조건식을 만들어 줍니다. rnum 즉, 랜덤으로 만들어진 숫자와 사용자에게 입력받은 값인 User변수가 같지 않으면 while문이 반복됩니다. 그리고 실행문인 "숫자 입력" User=sc.nextInt를 통해 사용자에게 숫자를 입력받습니다.
hile(rnum!=User) {
System.out.println("숫자 입력:");
User=sc.nextInt();
4.while문안에 if조건문을 만들어 User <rnum User의 값이 rnum보다 작을 경우 "Up!!"을 실행하라는 명령을 작성
else if(User> rnum) User의 값이 rnum보다 클 경우 "Down!!"을 실행하는 명령을 작성
모두 아닌 경우 else를 실행하라 즉, 정답을 의미하겠죠 "정답"을 출력하는 명령을 작성해 주었습니다.
if(User<rnum) {
System.out.println("Up!!");
}
else if(User>rnum) {
System.out.println("Down!!");
}
else {
System.out.println("정답");
}
}
출력 결과
랜덤 값으로 10이라는 숫자가 들어갔었네요 ㅎㅎ
do-while반복문
do-while반복문은
"일단 한 번은 실행하고 조건이 참이라면, 명령을 반복해"라는 의미를 갖고 있습니다.
do-while반복문 구조
do{
반복할 명령
}while(조건식)
do-while반복문 예시
public class Do_while {
public static void main(String[] args) {
int i=10;
do {
System.out.println("적어도 한번은 출력되는 문장"+i);
i++;
}
while(i<20);
System.out.println("프로그램 종료");
}
}
while문과는 다르게 do { } 안에 실행문을 작성합니다. 그 뒤로 while( i <20) 조건문을 뒤에 작성하죠
그래서 do-while문은 일단 어떤 일이 일어나도 실행문을 한 번은 실행하고 조건문을 비교합니다.
출력 결과
저는 do-while문을 어디에 쓰이는지 정말 모르겠네요..ㅎㅎ
어딘가에는 쓰이겠지만 이럴 바에는 실행문을 따로 빼서 실행하고 while문을 작성하는 게 낫지 않나.. 싶은 생각이 듭니다.
아무튼 저의 개인적인 생각이었고
이상으로 오늘은 while문과 do-while반복문에 대해 알아보았습니다.
이상으로 포스팅 마치겠습니다!!
