코딩이란 무엇일까

[Java/자바] 제어문_(4)while , do-while반복문 본문

Java

[Java/자바] 제어문_(4)while , do-while반복문

둥구는 지굴다 2022. 9. 21. 20:11

안녕하세요~ 오늘은 반복문 중의 하나인 while반복문과 Do-while반복문에 대하여 알아보겠습니다~

while반복문이란?

"조건이 참일 동안에 ~명령을 반복해라"라는 의미를 갖고 있습니다.

while 반복문의 구조

while(조건식){

반복할 명령

}

조건식의 조건이 참일 동안에 { } 안의 명령을 반복해라

while반복문의 조건식 안에는 true혹은 false의 결과 값을 갖는 식이 들어갑니다.

while문 사용하는 방법

  1. while문에서 사용할 변수를 먼저 생성해 주어야 합니다.
  2. 조건식에서 변수의 범위를 설정해 줍니다. 조건식에 변수의 범위를 작성 안 할 시 무한 반복 while문이 실행됩니다.
  3. 반복할 실행문을 작성해 줍니다.
  4. 변수의 값을 변화할 증감식을 작성합니다.

단, 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반복문에 대해 알아보았습니다.

이상으로 포스팅 마치겠습니다!!

Comments