break; : 반복문 안에 사용 되는 분기문
break;가 실행되는 순간 현재 속해있는 반복문을 강제로 빠져나감
*유의 사항 : switch문 안의 break;는 단지 switch문만을 빠져나가는 구문
예제1
랜덤값(1~199) 발생시키고 그 랜덤값 출력 (이 과정 매번 반복 => 무한반복)
단, 발생된 랜덤값이 3의 배수 일 경우 (3으로 나눴을때 나머지가 0일 경우) 반복문을 빠져나와보자
while(true) { // 무한반복
int random = (int)(Math.random() *200 + 1);
System.out.println("random 값 : " + random);
if(random % 3 == 0) { // 3의 배수
break; // 반복문을 강제로 빠져나가게 하는 구문
}
}
예제2
사용자에게 문자열을 입력 받아 해당 그 문자열의 길이 출력(무한반복)
단, 사용자가 입력한 문자열이 "exit"일 경우 반복문을 빠져나가도록 함
Scanner sc = new Scanner(System.in);
while(true) {
System.out.print("문자열을 입력하세요.");
String str = sc.nextLine();
if(str.equals("exit")) { // 사용자가 입력한 문자가 "exit"일 때
System.out.println("프로그램을 종료합니다.");
break;
}else { // 근데 그게 아닐 경우 => 문자열의 길이 출력
System.out.println(str + " 문자열의 길이는 : " + str.length() + "입니다.");
}
}
sc.close();
예제3
사용자에게 단(2~9)을 입력받아 해당 단을 출력
혹시라도 잘못된 단을 입력했을 경우 다시 단을 입력받도록 유도
while(true) {
System.out.print("단을 입력하세요 : ");
int dan = sc.nextInt();
if(dan >= 2 && dan <= 9) { // 잘 입력했을 경우
for(int i = 1; i < 10; i++) {
System.out.printf("%d x %d = %d\n",dan,i,dan*i);
}
break;
}else { // 잘못 입력했을 경우
System.out.println("잘못입력했습니다. 다시 입력해주세요.");
}
}
sc.close();
continue; : 반복문 안에 기술되는 구문
continue; 구문 실행시 그 뒤의 구문을 실행하지 않고 곧바로 현재 속해있는 반복문 위로 올라간다
예제1
for문으로 1부터 10까지 홀수 출력
방법1.
for(int i= 1; i <=10; i++) {
if(i % 2 == 1) { // i값이 홀수일 경우
System.out.print(i + " ");
}
}
방법2
for (int i = 1; i <= 10; i++) {
if (i % 2 == 0) { // i값이 짝수일 경우
continue; // 건너뛰기
// 반복문 실행안하고 반복문 위로 올라감 => 증감식으로 가라
}
System.out.print(i + " ");
}
예제2
1부터 100까지의 총합계
단, 6의 배수값은 빼고 덧셈연산 하겠다.
//1부터 100까지의 총합계를 먼저 for 문 작성 해보기
int sum = 0;
for(int i = 1; i <= 100; i++) { // 6 12 18 24 ...
if(i % 6 == 0) { // 6의 배수란 이야기
continue; // 건너뛰고 증감만 !!
}
sum += i;
}
System.out.println("1부터 100까지의 합계 : " + sum);
예제3
2~9 단까지 출력
단, 3의 배수단은 빼고 출력
구구단 => 이중 for 문
for(int dan = 2;dan <= 9; dan++) {
if(dan % 3 == 0) {
continue;
}else {
System.out.println("===="+ dan + "단====");
for(int i = 1; i <= 9; i++) {
System.out.printf("%d x %d = %d\n",dan,i,dan*i);
}
}
}
break 와 continue의 차이
break; 는 반복문을 완전히 종료해버리고
continue; 는 현재 실행중인 구문을 스킵하고 다음번 반복문을 실행한다.
for(int i=0;i<5;i++){
if(i == 2) {
// break;
// continue;
}
System.out.println("Hello, world");
}
위 코드는 i = 0 1 2 3 4 까지 증가할 때마다 Hello, World 를 출력하는 코드이다.
만약 여기서 i 가 2 일 때
break; 가 들어온다면 Hello, World는 i가 0일때 1일만 출력되고 반복문은 즉시 종료가 된다. i가 0, 1 일때만 동작되므로 Hello, World는 총 두번 출력된다.
continue; 가 들어온다면 Hello, World는 i가 0일때 1일때 출력되고, i가 2일 때 continue 아래 구문은 실행하지 않고 반복문을 다시 실행한다. 즉 Hello, World는 i가 0, 1, 3, 4 일때만 출력되므로 총 4번 출력된다.