AWS 클라우드환경 네이티브 수업 48일차
진행
1. break과 continue
2. 여태 배운 걸로 연습 문제 품
요약
1. break과 continue
break과 continue
break은 만나게 되면 그 구문의 반복을 바로 멈추고 반복 구문을 튀어나간다.
continue는 반복은 멈추지 않는다.
continue문 아래에 있는 실행해야 하는 문장들을 건너 뛰고, 다음 반복을 시작한다.
아래는 break의 예시이다.
package LectureExam;
public class RepeatExample {
public static void main(String[] args) {
int i = 0;
while(true) {
i++;
if(i>20) {
break; // i가 21이 되는 순간, while 문 자체를 나간다.
}
if(i%2==0) {
System.out.println(i + " 다!!! 짝수니까 내려갈 거 바로 요로케! ");
}
}
}
}
결과
2 다!!! 짝수니까 내려갈 거 바로 요로케!
4 다!!! 짝수니까 내려갈 거 바로 요로케!
6 다!!! 짝수니까 내려갈 거 바로 요로케!
8 다!!! 짝수니까 내려갈 거 바로 요로케!
10 다!!! 짝수니까 내려갈 거 바로 요로케!
12 다!!! 짝수니까 내려갈 거 바로 요로케!
14 다!!! 짝수니까 내려갈 거 바로 요로케!
16 다!!! 짝수니까 내려갈 거 바로 요로케!
18 다!!! 짝수니까 내려갈 거 바로 요로케!
20 다!!! 짝수니까 내려갈 거 바로 요로케!
아래는 continue의 예시이다.
package LectureExam;
public class RepeatExample {
public static void main(String[] args) {
int i = 0;
while(true) {
i++;
if(i>20) {
break; // i가 21이 되는 순간, while 문 자체를 나간다.
}
if(i%2==1) {
continue;
// i가 홀수 일 때 아래의 구문을 안하고 위로 다시 올라간다.
}
System.out.println( i + " 다!!! 짝수니까 내려갈 거 바로 요로케! ");
}
}
}
결과
2 다!!! 짝수니까 내려갈 거 바로 요로케!
4 다!!! 짝수니까 내려갈 거 바로 요로케!
6 다!!! 짝수니까 내려갈 거 바로 요로케!
8 다!!! 짝수니까 내려갈 거 바로 요로케!
10 다!!! 짝수니까 내려갈 거 바로 요로케!
12 다!!! 짝수니까 내려갈 거 바로 요로케!
14 다!!! 짝수니까 내려갈 거 바로 요로케!
16 다!!! 짝수니까 내려갈 거 바로 요로케!
18 다!!! 짝수니까 내려갈 거 바로 요로케!
20 다!!! 짝수니까 내려갈 거 바로 요로케!
연습 문제
(문제풀이는 바로 아래에)
문제1. 1~20까지의 숫자 중 2,3의 배수만 빼고 합한 값을 구해라.
( for - continue를 사용해서 / while - break 를 사용해서 코딩해라. )
문제2. 1 + ( 1+2 ) + ( 1+2+3 ) + ... + ( 1+2+3+4+5+6+7+8+9+10 ) 의 값은?
( do ... while 을 사용해서 변수 3개 / for 문을 사용해서 변수 2개 코딩해라. )
문제3. 1 + ( -2 ) + 3 + ( -4 ) + .......... 이렇게 더할 때, 몇까지 더해야 100이상이 되는가?
( for 문을 사용해서 / while문을 사용해서 코딩해라. )
문제4. 2개의 주사위를 던져 눈의 합이 6이 되는 모든 경우의 수를 출력해라.
문제5. 방정식 2x + 4y = 10 의 해를 구하시오. (정수 x, y의 범위 : 0 <= x,y <= 10)
문제6. 13579의 각 자릿수를 더하면 얼마인가?
( 앞에서부터 더하는 방식 / 뒤에서부터 더하는 방식으로 코딩해라. )
문제7. 피보나치 수열 10번째의 수는 무엇일까? 1, 1, 2, 3, 5, .....
문제8. 13579가 회문수 (숫자를 거꾸로 읽어도 앞으로 읽은 것과 같은 수, 12321, 11233211... ) 인지 판별 하라.
( 각 자릿수끼리 매칭해서 알아내는 방식 / 숫자 자체를 뒤집어서 비교하는 방식 으로 코딩해라. )
문제 풀이
문제1-1 답.
package LectureExam;
public class exercise1 {
public static void main(String[] args) {
int i ;
int sum = 0 ;
for( i = 1; i<21 ; i++) {
if(i%2 == 0 || i%3 == 0) {
continue;
}
sum += i;
}
System.out.println(sum);
}
}
결과
73
문제1-2 답.
package LectureExam;
public class exercise1 {
public static void main(String[] args) {
int i = 0;
int sum = 0 ;
while (true) {
if(i>20) {
break;
}
i++;
if(i%2 == 0 || i%3 == 0) {
continue;
}
sum += i;
}
System.out.println(sum);
}
}
문제2-1 답.
package LectureExam;
public class exercise2 {
public static void main(String[] args) {
int i = 1 ;
int j = 0 ;
int sum = 0 ;
do {
j += i;
sum += j ;
i ++;
System.out.println(i);
System.out.println(j);
} while(i<11);
System.out.println(sum);
}
}
결과
220
문제2-2 답.
package LectureExam;
public class exercise2 {
public static void main(String[] args) {
int i = 0 ;
int sum = 0 ;
for(i = 0 ; i<11 ; i++) {
sum = sum + i*(i+1)/2;
// 응~ 변수 부족~ 계차수열~ ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
// 진성 프로그램으로만 만들면 님은 천재ㅇㅇ
}
System.out.println(sum);
}
}
문제3-1 답.
package LectureExam;
public class exercise1 {
public static void main(String[] args) {
int i = 0 ;
int sum = 0 ;
for(sum = 0 ; sum<100 ; sum = sum) {
if(i%2 == 1) {
sum += i ;
i++;
continue;
} else {
sum -= i;
i++;
continue;
}
}
System.out.println("합은 " + sum);
System.out.println("이 때의 i는 " + (i-1));
}
}
결과
합은 100
이 때의 i는 199
문제3-2 답.
package LectureExam;
public class exercise1 {
public static void main(String[] args) {
int i = 0 ;
int sum = 0 ;
while(sum<=100) {
if(i%2==0) {
sum -= i;
} else {
sum += i;
}
if(100<=sum) {
break;
}
i++;
}
System.out.println("합은 " + sum);
System.out.println("이 때의 i는 " + i);
}
}
문제4 답.
package LectureExam;
public class exercise1 {
public static void main(String[] args) {
int i , j;
int sum = 0 ;
for (i=1 ; i<7 ; i++) {
for(j=1 ; j<7 ; j++) {
sum = i+j;
if(sum == 6) {
System.out.println("(" + i + "," + j + ")");
}
}
}
}
}
결과
(1,5)
(2,4)
(3,3)
(4,2)
(5,1)
문제5 답.
package LectureExam;
public class exercise1 {
public static void main(String[] args) {
int i , j;
for (i=0 ; i<11 ; i++) {
for(j=0 ; j<11 ; j++) {
if(2*i + 4*j == 10) {
System.out.println("(" + i + "," + j + ")");
}
}
}
}
}
결과
(1,2)
(3,1)
(5,0)
문제6-1 답.
package LectureExam;
public class exercise1 {
public static void main(String[] args) {
int i ;
int j = 4;
int num = 13579;
int sum = 0 ;
while(j>=0) {
i = (int)(num / Math.pow(10, j)) ; // Math.pow( 밑 , 지수 )
num -= i * Math.pow(10, j) ;
sum += i;
j-- ;
}
System.out.println(sum);
}
}
결과
25
거듭 제곱 함수 : Math.pow( 밑 , 지수 )를 사용하면 쉽게 풀 수 있다. (역순기준)
더 쉬운 방법. 아래의 정순 방향이 더 쉽게 풀린다.
문제6-2 답.
package LectureExam;
public class exercise1 {
public static void main(String[] args) {
int num = 13579;
int sum = 0 ;
while(num>0) {
sum += num%10 ;
num = num/10;
}
System.out.println(sum);
}
}
아래 7번은 내가 푼 답이랑 더 쉬운 답.
문제7 답.
package LectureExam;
public class exercise1 {
public static void main(String[] args) {
int i ;
int sum = 1 ;
int presum = 1;
for(i=0; i<10 ; i++) {
if(i == 0 ) {
sum += 0;
presum = sum;
continue;
}
presum = sum - presum;
sum += presum ;
}
System.out.println(sum);
}
}
결과
55
문제7 쉬운 답.
package LectureExam;
public class exercise1 {
public static void main(String[] args) {
int num1 = 1;
int num2 = 1;
int num3 ;
for(int i=0; i<8 ; i++) {
num3 = num1 + num2;
num1 = num2;
num2 = num3;
System.out.println(num3);
}
}
}
문제8-1 답.
package LectureExam;
public class exercise1 {
public static void main(String[] args) {
int num = 1223221;
int checknum = 0;
int right = 0;
int left = 0;
for(int i = 1; true ; i ++ ) {
right = num % 10 ;
checknum = num ;
int deci = 0;
while(num > 0) {
deci++;
left = num % 10 ;
num = (int)(num/10);
}
System.out.println(right);
System.out.println(left);
System.out.println(deci);
if(right == left) {
System.out.println(i + "번째 매치입니다.");
checknum = checknum - left*(int)(Math.pow(10, deci-1));
num = checknum/10 ;
System.out.println(num);
if((num-10) < 0) {
System.out.println( i + "번째 매치에서 끝입니다. 회문자입니다.");
break;
}
continue;
} else if ( i == 1 || right != left ) {
System.out.println("회문자가 아닙니다.");
break;
}
}
}
}
결과
1
1
7
1번째 매치입니다.
22322
2
2
5
2번째 매치입니다.
232
2
2
3
3번째 매치입니다.
3
3번째 매치에서 끝입니다. 회문자입니다.
문제8-2 답.
package LectureExam;
public class exercise2 {
public static void main(String[] args) {
int num = 13579;
int origin = num ;
int rev = 0 ;
while(num>0) {
rev = rev*10 + num%10 ;
num = num/10;
}
if(origin == rev) {
System.out.println("회문수 지비.");
}else {
System.out.println("회문수 아니지비.");
}
}
}
결과
회문수 아니지비.
'코딩수업 > AWS 클라우드환경 네이티브' 카테고리의 다른 글
7/25 자바(Java) 반복문 연습 문제 (2) | 2022.07.25 |
---|---|
7/22 자바(Java) 반복문 연습 문제 진행, Scanner 클래스 (0) | 2022.07.22 |
7/20 자바(Java) Math.random() 활용, 반복문(for, while, do...while) (0) | 2022.07.20 |
7/19 자바(Java) 문자 연산, 연산자, 조건문, Math.random() (4) | 2022.07.19 |
7/18 자바(Java) 강사님 교체 후 첫 수업. 클라이언트와 서버, Java 개념, Java 설치, 변수의 개념, Spring 설치 및 세팅 (2) | 2022.07.18 |
댓글