보기보기 개발 블로그

eclipse / while ,do while 문 본문

Java

eclipse / while ,do while 문

bokboks 2023. 3. 17. 23:38

안녕하세요

오늘은 이전에 다룬 자바의 이중 반복문 이후에

자바에서의 또 다른 반복문인 while 과 do while 문에 대해 알아보겠습니다.

 

 

eclipse / 자바 이중 반복문

안녕하세요 이번 포스팅에선 이전에 다룬 자바의 break문 과 continue 문에 이후 자바의 이중 반복문에 대해 알아보겠습니다. eclipse / 자바 break , continue 문 안녕하세요 이번 포스팅에서는 이전에 다

stackbok.tistory.com


package javaexp.a04_process;

import java.util.Scanner;

public class A09_While {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		/*
		 * # while문을 통한 반복 처리 1. while 문은 반복여부를처리하는 boolean값을 기준으로 반복수행을 처리한다. 2. 기본 형식
		 * 1) 기본 while(반복조건){ 반복수행할 내용 } 2) 입렵값에 따라 반복 처리 while(true){ // 무한 반복 ck =
		 * sc.nextLint(); if(ck.equals("Q")){// Q를 입력했을 때, 반복 수행을 중단 처리. break; }
		 */
		int cnt = 1;
		while (cnt <= 10) { // 10이하까지 반복
			System.out.println("카운트 :" + (cnt++));
		}
		// ex) while문을 활용하여 100부터 70까지 2씩 감소시켜 출력하세요..
		int cnt01 = 100;
		while (cnt01 >= 70) {
			System.out.println("카운트:" + cnt01);
			cnt01 -= 2;
		}
		Scanner sc = new Scanner(System.in);
		// 주문할 것이 있으면 입력받게 하고, 종료시 Q 입력 처리
		/*
		 * System.out.println("어서오세요!!"); int oCnt=1; while(true) { // 무한 loop 처리
		 * System.out.println("주문할 메뉴를 입력하고, 종료시 Q를 입력하세요."); String menu =
		 * sc.nextLine(); if(menu.equals("Q")) { System.out.println("주문이 완료되었습니다!!");
		 * break; // 반복문 중단 (Q를 입력시 처리) } System.out.println(oCnt+++"번째 주문 메뉴:"+menu);
		 * 
		 * }
		 */
		// ex1) 구매할 물건의 가격을 입력받고, 종료시 -1을 입력받아 가격을 출력하게 하세요
		int cst01 = 1;
		System.out.println("가격을 입력하세요!");
		while (true) {
			int cst = sc.nextInt();
			if (cst == -1) {
				System.out.println("종료입니다");
				break;

			}
			System.out.println(cst01++ + "번째 가격:" + cst);

		}
		// ex2) 등록할 회원명을 입력받아 아래의 형식으로 출력 종료시 Q
		// 회원번호 회원명
		// 1 홍길동
		// 2 김길동
		// 3 신길동
		Scanner a = new Scanner(System.in);
		System.out.println();
		System.out.println("회원번호\t회원명");
		int num = 1;
		while (true) {
			String num01 = a.nextLine();
			if (num01.equals("Q")) {
				System.out.println("출력종료");
				break;

			}
			System.out.println(num++ + "\t" + num01);

		}

	}

}

 


package javaexp.a04_process;

import java.util.Scanner;

public class A10_Do_While {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		/*
		 * # do while문 1. while문 형식에서 반복 조건 상관없이 반드시, 1번은 수행되어야 할 경우에 사용된다. 2. 기본 형식 do{
		 * 1번 이상 반복할 구문 }while (반복 조건);
		 */
		int cnt = 1;
		do {
			System.out.println("카운트:" + cnt);
			cnt++;
		} while (cnt <= 10);
		System.out.println("반복문 종료");
		Scanner sc = new Scanner(System.in);
		System.out.println("온라인 쇼핑몰에 오신 것을 환영합니다.");
		String chProd = "# 선택한 물건 #";
		String pname = "";

		do {
			// 일단, while 조건에 상관없이 한번은 출력 처리한다.
			chProd += pname + "\n";
			System.out.println("물건을 확인하시고 선택하세요! 완료시 Q를 누르세요");
			pname = sc.nextLine();
		} while (!pname.equals("Q"));
		System.out.println(chProd);
	}

}

다른 대표적인 반복문인 for 문과 while 문의 차이를 두자면 

for문의 경우는 

1.반복 횟수가 정해진경우

2.배열과 함께 주로 많이 사용

while문의 경우는

1.무한루프 나 특정조건에 만족할때까지 반복해야하는 경우

2.주로 파일을 읽고 쓰기에 많이 사용

 

이렇게 나눠집니다

 

while문의 1번같은 경우에는(무한루프)

		int num01 = 0;
    	boolean asRun = true;
    	while(asRun) {
    		num01++;
    		System.out.println(num01);
    		if(num01 == 20000) {
    			asRun = false;
		}
   	}
-----------------------------------------------------------  
    int num02 = 0;
    	while(true) {
    		num02++;
    		System.out.println(num02);
    		if(num02 == 20000) {
    			break;
    		}
    	}

위의 코드처럼 무한루프를 돌다가 특정 조건에 멈추고싶다면 

이전 포스팅에서 알려드린 break문 이나 

boolean 타입으로 활용이 가능합니다.

 

이상 while문 과 dowhile문을 알아보았습니다.

감사합니다.