-
조건문과 반복문 연습문제Java/조건문 & 반복문 2020. 11. 3. 23:20
자바의 정석 챕터 4의 연습문제를 풀어보고, 틀린 문제는 다시 한번 생각해볼 것이다.
풀어서 맞춘답 표시
풀어서 틀린답 표시 및 코드로 직접 실습해보기
1. 다음의 문장들을 조건식으로 표현하라.
1) int형 변수 x가 10보다 크고 20보다 작을 때 true인 조건식
10 < x && x < 20
2) char형 변수 ch가 공백이나 탭이 아닐 때 true인 조건식
!( ch == ' ' || ch =='\t' ) or ch != ' ' && ch != '\t'
3) char형 변수 ch가 'x' 또는 'X'일 때 true인 조건식
ch == 'x' || ch == 'X'
4) char형 변수 ch가 숫자('0' ~ '9')일 때 true인 조건식
'0' <= ch && ch <= '9'
5) char형 변수 ch가 영문자(대문자 또는 소문자)일 때 true인 조건식
( 'a' <= ch && ch <= 'z' ) || ( 'A' <= ch && ch <= 'Z' )
6) int형 변수 year가 400으로 나눠떨어지거나 또는 4로 나눠떨어지고 100으로 나눠떨어지지 않을 때 true인 조건식
year % 400 == 0 || year % 4 == 0 && !( year % 100 == 0)
7) boolean형 변수 powerOn이 false일 때 true인 조건식
!powerOn or powerOn == false
8) 문자열 참조변수 str이 "yes"일 때 true인 조건식
str.equals( "yes" ) or "yes".equals(str)
2. 1부터 20까지의 정수 중에서 2 또는 3의 배수가 아닌 수의 총합을 구하시오.
int sum = 0;
for ( int x = 1; x <= 20; x++ ) {
if ( !( x % 2 == 0 || x % 3 == 0 )) {
sum += ++x;
}
System.out.println( "sum = " + sum );
}
교재의 답)
내가 푼 답 )
i를 선증가 시켜서 sum에 더했는데, 그게 아니라 그냥 i값이 1씩 증가하는 값을 2나 3으로 나눴을 때 배수가 아닌경우에 더해야 됐다. if안의 조건식에서 2와 3으로 나누었을 때 0이되면 2와 3의 배수이므로, 그게 아닐 때만 sum에 더하는 방법으로 구현해보았다.
3. 1 + (1+2) + (1+2+3) + (1+2+3+4) + ... + (1+2+3+4+...+10)의 결과를 계산하시오.
int sum = 0;
for ( int i = 0; i <= 10; i++ ) {
}
교재의 답)
i의 값이 1부터 10까지 1씩 증가하고, 그 증가하는 i의 값을 누적해서 sum 변수에 저장하면, 각각 i가 1씩 증가할 때 마다 sum에 저장되는 값들을 확인할 수 있다. 이 값을 totalSum 이라는 변수에 다 더하면 sum의 합한것을 구할 수 있다.
4. 1 + (-2) + 3 + (-4) +...과 같은 식으로 계속 더해나갔을 때, 몇까지 더해야 총합이 100이 되는지 구하시오.
내가 푼 답 )
우선 내가 생각한 것은 짝수인 수들은 음수이고 홀수인 수들은 양수인것을 파악하였다. 그리고 총 몇까지 더해야 총합이 100이 되는지도 알 수 없었다. 그래서 wihle문을 사용해야겠다고 생각했다. 전체합을 구하는 변수와 처음 더해야 되는 수와 1씩 증가하면서 음수, 양수를 번갈아 가며 바꿔지며 나오는 규칙을 발견하였고, 그걸 저장할 변수를 하나 더 선언하였다. 홀수가 나올 때는 전체의 합을 계속 더하고, 짝수가 나올 때는 총합에서 빼는 식으로 계산을 하고, 총합이 100이 넘을 경우 전체 while문을 나가도록 코드를 짜 보았다.
밑에 코드는 반복을 하면서 1씩 증가하는 num과 총합 sum을 출력해보았다.
교재의 답 )
교재의 답을 보았지만, 한번에 잘 이해가 가지 않았다. 이건 이해해보고 정리해보려고 한다.
[참고 도서 Java의 정석_기초편] http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788994492049&orderClick=LEa&Kc=
'Java > 조건문 & 반복문' 카테고리의 다른 글
Scanner를 통해 사용자로부터 입력받은 수만큼 별 찍기를 반복하기, 자바스크립트로 별 찍기 (0) 2020.11.04 중첩 반복문 앞에와 break, continue문에 이름을 지정하여 하나 이상의 반복문을 벗어나거나 반복을 건너 띄기 (0) 2020.10.30 break문과 continue문 (0) 2020.10.30 continue문 (0) 2020.10.30 break 문 (0) 2020.10.30