4-20 break문
자신이 포함된 하나의 반복문을 벗어난다.
while문을 무한반복문으로 만드려면
true가 꼭 필요하다. 생략불가
반면 for문은 생략가능.
for문 조건식에 ;; 이것만 써주면 됨
break문이 속한 반복문을 나간다.
예제에서는 while문을 빠져나간다.
4-21 continue문
자신이 포함된 반복문의 끝으로 이동- 다음 반복으로 넘어감
전체 반복 중에서 특정 조건시 반복을 건너뛸 때 유용
0나누기 3은 0이다.
4-22break문과 continue문 예제
4-23 이름붙은 반복문
반복문에 이름을 붙여서 하나 이상의 반복문을 벗어날 수 있다.
break; 하나의 반복문을 벗어난다.
중첩 반복문을 벗어나야 할 때는 어떻게 해야할까?
반복문에 이름을 붙여주고 break문 뒤에 이름을 적어준다..
예: break Loop1;
continue문에도 사용할 수 있다 정도만 기억
예제4-16
class Ex4_16 {
public static void main(String[] args) {
int sum = 0;
int i = 0;
while(true) {
if(sum > 100)
break;
++i;
sum += i;
} // end of while
System.out.println("i=" + i);
System.out.println("sum=" + sum);
}
}
결과
i = 14
sum = 105
예제 4-17
class Ex4_17 {
public static void main(String[] args) {
for(int i=0;i <= 10;i++) {
if (i%3==0)
continue;
System.out.println(i);
}
}
}
결과
1
2
4
5
7
8
10
(0도 3으로 나누면 0이다.)
예제 4-18
import java.util.*;
class Ex4_18 {
public static void main(String[] args) {
int menu = 0;
int num = 0;
Scanner scanner = new Scanner(System.in);
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 = scanner.nextLine(); // 화면에서 입력받은 내용을 tmp에 저장
menu = Integer.parseInt(tmp); // 입력받은 문자열(tmp)을 숫자로 변환
if(menu==0) {
System.out.println("프로그램을 종료합니다.");
break;
} else if (!(1 <= menu && menu <= 3)) {
System.out.println("메뉴를 잘못 선택하셨습니다.(종료는 0)");
continue;
}
System.out.println("선택하신 메뉴는 "+ menu +"번입니다.");
}
} // main의 끝
}
(1) square
(2) square root
(3) log
원하는 메뉴(1~3)를 선택하세요.(종료:0)>
예제 4-19
class Ex4_19
{
public static void main(String[] args)
{
// for문에 Loop1이라는 이름을 붙였다.
Loop1 : for(int i=2;i <=9;i++) {
for(int j=1;j <=9;j++) {
if(j==5)
break Loop1;
// break;
// continue Loop1;
// continue;
System.out.println(i+"*"+ j +"="+ i*j);
} // end of for i
System.out.println();
} // end of Loop1
}
}
결과
2*1=2
2*2=4
2*3=6
2*4=8
만약 break Loop1(바깥쪽 for문까지 빠져나온다.)대신 break를 쓴다면 결과는
2단부터 9단까지 나올 것이다.
왜냐하면 break문이 안쪽 for문만 빠져나왔기 때문이다.
2*1=2
2*2=4
2*3=6
2*4=8
3*1=3
3*2=6
3*3=9
3*4=12
예제 4-20
import java.util.*;
class Ex4_20 {
public static void main(String[] args) {
int menu = 0, num = 0;
Scanner scanner = new Scanner(System.in);
outer: // while문에 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 = scanner.nextLine(); // 화면에서 입력받은 내용을 tmp에 저장
menu = Integer.parseInt(tmp); // 입력받은 문자열(tmp)을 숫자로 변환
if(menu==0) {
System.out.println("프로그램을 종료합니다.");
break;
} else if (!(1<= menu && menu <= 3)) {
System.out.println("메뉴를 잘못 선택하셨습니다.(종료는 0)");
continue;
}
for(;;) {
System.out.print("계산할 값을 입력하세요.(계산 종료:0, 전체 종료:99)>");
tmp = scanner.nextLine(); // 화면에서 입력받은 내용을 tmp에 저장
num = Integer.parseInt(tmp); // 입력받은 문자열(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의 끝
} // main의 끝
}
'프로그래밍 언어 > 자바의 정석 기초편' 카테고리의 다른 글
자바의 정석 기초편 ch5-4,5 배열의 길이, 배열의 초기화 (0) | 2022.06.01 |
---|---|
자바의 정석 기초편 ch5-1~3 배열의 생성과 선언, 배열의 인덱스 (0) | 2022.06.01 |
자바의 정석 기초편 ch4-16~19 while문, do-while문 (0) | 2022.05.20 |
자바의 정석 기초편 ch4-15 중첩 for문 (0) | 2022.05.18 |
자바의 정석 기초편 ch4-13,14 for문 (0) | 2022.05.18 |