전체 프로그램을 구성하는 부분과 프로그램 내부에서 각각 1,2,3번을 선택했을 때 하는 동작을 구성하는 부분 이렇게 2가지로 나눌 수 있겠다.
전체 프로그램 구성 : 메뉴 출력 반복문으로 구현. 0을 눌렀을 때 break문으로 현재 반복문(outer while문)을 탈출하여 프로그램 종료 가능. 예외상황 처리-1~3 사이 번호가 아닐 때.
1,2,3번 입력받았을 때 동작 구현 : 1/2/3번을 을 때, num을 입력받아 제곱값/제곱근/로 제공. 99번을 받으면 전체 프로그램 종료기 때문에 break outer;를 통해 outer 반복문을 탈출하여 전체 프로그램 종료한다. 기능 구현 후에는 현재 반복문을 탈출하여 프로그램 메뉴로 다시 돌아가도록 한다.
importjava.util.*;classcalculator {publicstaticvoidmain(String[] args) {int menu =0, num =0;Scanner scanner =newScanner(System.in); outer://아래의 while문에 이름을 붙여준다.while(true) {System.out.println("(1) square");System.out.println("(2) square root");System.out.println("(3) log");System.out.print("원하는 메뉴(1~3)를 선택하세요.(계산 종료:0, 전체 종료:99)>");String tmp =scanner.nextLine(); menu =Integer.parseInt(tmp);if(menu ==0) {// System.out.println("프로그을 종료합니다.");break; }elseif(!(1<= menu && menu <=3)) {System.out.println("메뉴를 잘못 선택하셨습니다.(종료는0)");continue;//아래의 코드들을 실행하지 않고 넘어간다. }//계산을 하는 부분.일종의 함수를 호출하여 실행하고, 실행한 다음에는 break문으로 종료하는.for(;;) {//무한반복문을 의미하는 forSystem.out.print("계산할 값을 입력하세요.(계산 종료:0, 전체 종료:99)>"); tmp =scanner.nextLine(); num =Integer.parseInt(tmp);if(num ==0) {break;//계산 종료. 현재의 for문만 탈출! }if(num ==99) {break outer;//전체 종료. 현재의 for문과 while문을 모두 탈출! }switch(menu) {case1:System.out.println("result="+num*num);break;case2:System.out.println("result="+Math.sqrt(num));break;case3:System.out.println("result="+Math.log(num));break; } }//for문 끝 }//while문 끝 System.out.println("프로그램을 종료합니다!"); }}