반응형

package ch01;

 

import java.util.Scanner;

 

public class Ex4_20 {

public static void main(String[] args) {

int menu = 0, num = 0;

Scanner sc = new Scanner(System.in);

 

// while문에 outer라는 이름을 붙임

outer: while (true) {

System.out.println("(1) square");

System.out.println("(2) square root");

System.out.println("(3) log");

System.out.print("원하는 메뉴(1~3)을 선택하세요, 종료는 0번");

 

String tmp = sc.nextLine(); // 입력값을 tmp에 저장

menu = Integer.parseInt(tmp); // 입력받은 문자열 tmp를 숫자로 변환

 

if (menu == 0) {

System.out.println("계산을 종료합니다.");

break; // 계산종료 for문 벗어남

} else if (!(1 <= menu && menu <= 3)) {

System.out.println("잘못입력하셨습니다.");

continue;

}

 

for (;;) {

System.out.print("계산할 값을 입력하세요(계산종료 0, 전체종료 99)>");

tmp = sc.nextLine();

num = Integer.parseInt(tmp);

 

if (num == 0)

 

break;

 

if (num == 99)

 

break outer;

 

switch (menu) {

case 1:

System.out.println("result=" + num * num);

break;

 

case 2:

System.out.println("result=" + Math.sqrt(num));

break;

 

case 3:

System.out.println("result=" + Math.log(num));

break;

}

} // for(;;)

 

} // end of while

} // end of main

} // end of class

 


메뉴를 선택하면 해당 연산을 반복적으로 수행할 수 있게 for문을 추가하였다.

반복문만 떼어놓고 보면 무한 반복문인 while문안에 또 다른 무한반복문인 for문이 중첩된 구조인 것을 알 수 있다.

while문은 메뉴를 반복해서 선택할 수 있게 해주고, for문은 선택된 메뉴의 작업을 반복해서 할 수 있게 한다.

 

outer:

while(true) { // 무한 반복문

           ...

          for(;;) { // 무한 반복문

           ...

          if(num==0) // 계산 종료 for문을 벗어남

              break;

          if(num==99) // 전체 종료 for문과 while 문 모두 벗어난다.

              break outer;

          ...

            } // for(;;)

    } // while

 

 

 

반응형

'Java > Java 연습문제' 카테고리의 다른 글

자료구조 연습문제 2  (0) 2023.09.26
자료구조 연습문제  (0) 2023.09.26
이름 붙은 반복문  (0) 2023.08.12
break문과 continue 문 예제  (0) 2023.08.12
[JAVA] 매개변수의 다형성 연습  (0) 2023.08.11

+ Recent posts