1. continue 와 break 를 사용한 예문
(1) break 사용 예문
for(i=1;true;i++) 반복문 설정하고 ' 1+2+3+ ... ' 순차적으로 더했을 때 값이 최초로 5000을 넘는 수를 break를 통해 구현하기
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package ContinueAndBreak;
public class ContinueAndBreakTest4 {
public static void main(String[] args) {
int i=0, sum=0;
for(i=1; true; i++) {
sum+=i;
if(sum>5000) {
System.out.println(sum);
break;
}
}
}
}
|
cs |
- 출력값
5050
- 설명
for문의 조건을 true로 주었을 때 무한루프를 돌게 되기 때문에 이 반복문을 멈출 수 있는 방법은 오직 break. 출력문 이후 break를 사용하여 반복을 멈춰준다.
(2) continue 사용 예문
continue를 사용하여 1부터 20까지 2의 배수와 3의 배수를 제외하고 출력하기.
① 1~20까지의 숫자를 출력하는 방법
↓
② 1~20까지 2의 배수는 출력하지 않는 방법
↓
③ 1~20까지 2의 배수와 3의 배수를 출력하지 않는 방법
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
package ContinueAndBreak;
public class ContinueAndBreakTest5 {
public static void main(String[] args) {
int i=0;
for(i=1; i<=20; i++) {
if(i%2==0 || i%3==0) continue;
System.out.print(i + " ");
}
}
}
|
cs |
- 출력값
1 5 7 11 13 17 19
- 설명
2의 배수는 2로 나눈 나머지 값이 0이고, 3의 배수는 3으로 나눈 나머지의 값이 0이다. 나머지 연산자를 통해서 2로 나눈 나머지가 0인 값과 3으로 나눈 나머지가 0인 값은 continue를 만나서 식을 빠져나가 다시 for 반복문의 조건과 증감이 실행된다. i의 값이 20이 될 때까지 이 과정을 반복하여 2로 나눈 나머지가 0이 아니면서 3으로 나눈 나머지도 0이 아닌 값만 출력이 된다.
* 논리 OR 연산자 ( || )
|
1
2
3
4
|
if(i%2==0 || i%3==0) continue;
if(i%2==0) continue;
if(i%3==0) continue;
|
cs |
위에서 사용된 if(i%2==0 || i%3==0) continue; 는 if(i%2==0) continue; 과 if(i%3==0) continue; 가 합해진 것이다.
가운데의 || 는 논리 OR 연산자이다.
2개의 수식을 하나로 합해줄 때 사용되며 조건 중 하나만 참이어도 전체의 값을 참으로 판단한다. 즉, 앞의 값이나 뒤의 값 둘 중 하나만 참이어도 전체 수식을 참 true로 판단한다.
위에서처럼 병렬구조의 if문은 논리 OR 연산자로 바꿀 수 있다.
(3) break 사용 예문2
break를 사용하여 5의 배수이자 7의 배수인 가장 작은 수를 구하기
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
package ContinueAndBreak;
public class ContinueAndBreakTest6 {
public static void main(String[] args) {
int i=0;
for(i=1; true; i++) {
if(i%5==0 && i%7==0) {
System.out.println(i + " ");
break;
}
}
}
}
|
cs |
- 출력값
35
- 설명
5의 배수는 5로 나눈 나머지 값이 0이고, 7의 배수는 7으로 나눈 나머지의 값이 0이다. 나머지 연산자를 통해서 5로 나눈 나머지가 0인 값이면서 7로 나눈 나머지도 0인 최초의 값을 출력한 후 break를 만나 식이 바로 종료되면 된다.
5와 7의 공배수 중 값이 가장 작은 수를 구해주면 된다.
* 논리 AND 연산자 ( && )
|
1
2
3
4
|
if(i%5==0 && i%7==0)
if(i%5==0)
if(i%7==0)
|
cs |
위에서 사용된 if(i%5==0 && i%7==0) 는 if(i%5==0) 과 if(i%7==0) 가 합해진 것이다.
가운데의 && 는 논리 AND 연산자이다.
2개의 수식을 하나로 합해줄 때 사용되며 조건이 모두 다 참이어야 전체의 값을 참으로 판단한다. 즉, 앞의 값이나 뒤의 값 둘 다 참이어야 전체 수식을 참 true로 판단한다.
if문 안에 if문이 있는 경우 논리 AND 연산자로 바꿀 수 있다.
(4) continue 예문2
100이하의 자연수 중에 5의 배수이자 7의 배수인 정수를 전부 출력하고, 그 수를 세어보는 프로그램.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
package ContinueAndBreak;
public class ContinueAndBreakTest7 {
public static void main(String[] args) {
int i=0, cnt=0;
for(i=1; i<=100; i++) {
if(i%5!=0 || i%7!=0) continue;
cnt++;
System.out.print(i + " ");
}
System.out.println(" / " + cnt +"개");
}
}
|
cs |
- 출력값
35 70 / 2개
- 설명
1과 100사이에서 i는 1씩 증가하며 실행문이 반복된다.
if(i%5!=0 || i%7!=0) continue; 를 보면 i를 5로 나눈 나머지가 0이 아니거나 7로 나눈 나머지가 0이 아닌 2개의 경우는 continue를 만나 아래의 실행문이 출력되지 않고 다시 반복문으로 돌아가게 된다.
'Java > Day2' 카테고리의 다른 글
| [Java] 난수 (0) | 2021.10.31 |
|---|---|
| [Java] 논리 NOT 연산자 (0) | 2021.10.31 |
| [Java] continue 와 break (0) | 2021.10.31 |
| [Java] Selection sort 선택 정렬 알고리즘 (0) | 2021.10.31 |
| 치환 (0) | 2021.10.31 |