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 |