break, continue, named iterated statement
break문과 continue문을 썼을 때 실행 흐름을 보여준다.
String tmp = scanner.nextLine();
int menu = Integer.parseInt(tmp);
while(true) {
System.out.println("(1) Square");
System.out.println("(2) Square root");
System.out.println("(3) Log");
System.out.print("원하는 메뉴(1~3)을 선택하세요.(종료:0)");
//예외상황들을 먼저 처리
if(menu == 0) {
System.out.prinln("프로그램을 종료합니다.");
break;//while문을 탈출!!!
} else if( !(1 <= menu && menu <= 3)) {
System.out.println("메뉴를 잘못 선택하셨습니다.(종료는0);
continue;//아래의 출력문을 실행하지 않고 계속한다!
}
System.out.println("선택하신 메뉴는" + menu + "번입니다.");
}
이름 붙은 반복문
: 반복문에 이름을 붙여서 하나 이상의 반복문을 벗어날 수 있다.
Loop1 : for(int i=2; i <=9; i++) {
for(int j = 1; j <=9; j++) {
...
break Loop1;//'Loop1'이라고 명명한 반복문 탈출!
break;//현재의 for문만 탈출
}
}
반복문에 이름을 붙여 제곱과 제곱근, 로그를 구하는 코드를 작성해보자.
알고리즘의 구조
전체 프로그램을 구성하는 부분과 프로그램 내부에서 각각 1,2,3번을 선택했을 때 하는 동작을 구성하는 부분 이렇게 2가지로 나눌 수 있겠다.
전체 프로그램 구성 : 메뉴 출력 반복문으로 구현. 0을 눌렀을 때 break문으로 현재 반복문(outer while문)을 탈출하여 프로그램 종료 가능. 예외상황 처리-1~3 사이 번호가 아닐 때.
1,2,3번 입력받았을 때 동작 구현 : 1/2/3번을 을 때, num을 입력받아 제곱값/제곱근/로 제공. 99번을 받으면 전체 프로그램 종료기 때문에 break outer;를 통해 outer 반복문을 탈출하여 전체 프로그램 종료한다. 기능 구현 후에는 현재 반복문을 탈출하여 프로그램 메뉴로 다시 돌아가도록 한다.
import java.util.*;
class calculator {
public static void main(String[] args) {
int menu = 0, num = 0;
Scanner scanner = new Scanner(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;
}else if(!(1 <= menu && menu <= 3)) {
System.out.println("메뉴를 잘못 선택하셨습니다.(종료는0)");
continue;//아래의 코드들을 실행하지 않고 넘어간다.
}
//계산을 하는 부분.일종의 함수를 호출하여 실행하고, 실행한 다음에는 break문으로 종료하는.
for(;;) {//무한반복문을 의미하는 for
System.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) {
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문 끝
}//while문 끝
System.out.println("프로그램을 종료합니다!");
}
}
Last updated
Was this helpful?