2024.04.16

Java 반복문

while문

  • 무한 반복 : while (true) { 처리문들(데이터변경) ; 빠져나가는 조건 ; 처리문들 ; }

while문 예제

  • 메뉴 - 1. 게시판 2. 공지사항. 3.상품 4.로그인 0. 종료 1 / 2 / 3 / 4 - 해당 메뉴를 처리하였습니다. 라는 메시지를 출력한다. 0 - 헤어지는 인사를 하고 프로그램을 종료한다.

      - 무한 반복
          § 메뉴 출력 
          § 메뉴 키보드로 입력
          § 입력한 메뉴를 처리 - switch : 문자열 비교 가능(String)
          메뉴 이 외(default)의 데이터를 "잘못된 메튜를 입력하셨습니다. 다시 입력해 주세요."
    
  • 프로그램 종료 - System.exit(0); -> 0 은 정상적인 종료

package ch04condition;

import java.util.Scanner;

public class Main_1 {
	public static void main(String[] args) {
		// 업무 프로그램 시작
		// 키보드로 입력 받는 객체 선언
		Scanner scanner = new Scanner(System.in);
		
		// 라벨을 붙인다.
		// whileLoop:
		while (true) {
			// 메뉴 출력 메뉴 - 1. 게시판 2. 공지사항. 3.상품 4.로그인 0. 종료
			System.out.println("1. 게시판 2. 공지사항. 3.상품 4.로그인 0. 종료");
			// 메뉴 입력
			String menu = scanner.nextLine();
			// 입력한 내용을 처리
			switch (menu) {
			case "1":
				System.out.println("게시판을 처리하였습니다.");
				break;
			case "2":
				System.out.println("공지사항을 처리하였습니다.");
				break;
			case "3":
				System.out.println("상품을 처리하였습니다.");
				break;
			case "4":
				System.out.println("로그인을 처리하였습니다.");
				break;
			case "0": // 프로그램 종료
				System.out.println("프로그램을 종료합니다.");
				scanner.close();
				// break whileLoop; // whileLoop 블록을 빠져 나간다.
				System.exit(0);
			default:
				System.out.println("잘못된 메뉴를 선택하셨습니다.\n[1~4, 0]을 입력하셔야 합니다.");

			} // end of switch
		} // end of while
	} // end of main()
} // end of class

조건 반복

  • 1 부터 10까지 출력하는 프로그램
package ch04condition;

import java.util.Scanner;

// 4.5 while 문 (p.129)
// 1 ~ 10 까지 출력하는 프로그램 작성

public class PrintFrom1To10Example_1 {
	public static void main(String[] args) {

		// for 문을 사용한 프로그램
		for (int i = 1; i <= 10; i++)
			System.out.print(i + " ");
		System.out.println();

		// while 문을 사용한 프로그램
		// 변수 선언 ( for 문 안에 있는 i는 지역 변수 이므로 전역 변수인 i와 오류나지 않음.)
		int i = 1;

		// for(int i = 1; i <= 10; i++) System.out.print(i + " "); // 변수 선언 후 같은 이름의 지역
		// 변수를 선언하면 오류
		for (; i <= 10;)
			System.out.print(i++ + " ");
		System.out.println();

		
		// 위에 for 문이 끝나면 i = 10
		// 변수 다시 선언 - 초기값 세팅
		i = 1;

		// start of while - 1 ~ 10 까지 출력
		while (i <= 10)
			System.out.print(i++ + " ");
		System.out.println(i); // while 이 끝난 i = 11

		
		// String을 활용한 while 문
		// String은 참조형 변수이기 때문에 위치를 가진다.
		// "" 쓴 이유는 초기값이 없기 때문에 ""로 선언.
		String menu = "";

		Scanner scanner = new Scanner(System.in);

//		// while(빠져나가는 조건) = 조건에 맞지 않으면 빠져 나간다.
//		while (!menu.equals("0")) { // 0이면 빠져 나간다. = 0이 아니면 반복 처리한다.
//			System.out.println("메뉴를 입력하세요.");
//			menu = scanner.nextLine();
//			if (!menu.equals("0"))
//				System.out.println("처리");
//		} // end of while
		
		String menu1 = null;
		
		// menu1이 null 이거나 또는 munu1이 null이 아니고 "0"이 아니면 실행하자.
		// while (menu1 == null || (!(menu1 == null) && menu1.equals("0"))) { -> 오류
		// while (!(menu1 == null) ? !menu1.equals("0"):true) {
		while ((menu1 == null) ? true : !(menu1.equals("0"))) {
			System.out.println("메뉴를 입력하세요.");
			menu1 = scanner.nextLine();
			if (!menu1.equals("0") && !menu.equals(null))
				System.out.println("처리");
		} // end of while
		
		scanner.close();
		
		System.out.println("종료");

	} // end of main()

} // end of class

Do While문

package ch04condition;

import java.util.Scanner;

// do-while 문 p.133

public class DoWhileExample {
	public static void main(String[] args) {

		System.out.println("메시지를 입력하세요.");
		System.out.println("프로그램을 종료하려면 \"q\"를 입력하세요.");

		Scanner scanner = new Scanner(System.in);
		String inputString;

		do {
			System.out.print(" > ");
			inputString = scanner.nextLine();
			System.out.println(inputString);
		} while (!inputString.equals("q"));

		System.out.println();
		System.out.println("프로그램 종료.");
		
		scanner.close();
	} // end of main()
} // end of class

태그:

카테고리: ,

업데이트: