본문 바로가기
Study/Java 연습문제

04.조건문/반복문 Exercise (기본 코드/내 풀이/해설)

by 하구땡 2023. 1. 18.
반응형

[4-1] 다음의 문장들을 조건식으로 표현하라.

 

1. int형 변수 x가 10보다 크고 20보다 작을 때 true인 조건식

    10 < x && x< 20

2. char형 변수 ch가 공백이나 탭이 아닐 때 true인 조건식

    ch != ' ' || ch != '\'

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 == false

8. 문자열 참조변수 str이 "yes"일 때 true인 조건식

    str.equals("yes")

 

[4-2]

=> 나는 2와 3의 배수일 경우에는 continue를 사용해 건너뛰었고

해설은 2와 3의 배수가 아닐 경우에 합하도록 함

결과값은 73으로 동일

문제 + 내 풀이
해설

 

 

[4-3]

문제 + 내 풀이
해설

+처음에 main메서드 호출도 안해놓고 코드 짜서 멘붕왔던 것 캡처..

total선언 마지막에 ;다음에 괄호처리하라고 자꾸 오류 떠서 뭔 개소리야~~~ 했는데..

알고보니 main이 없었던....

제발 이런 실수는... 하지말길 다음부턴 ^^....

 

 

[4-4]

=> j값을 i값의 음수로 설정해놓고 증감식에서 j++로 해놔서 결과값이 오류로 나왔다.

- 부호를 변경해줄 변수를 1로 놓고 증감식에서 s = -s로 사용했는데

이렇게 되면 매 반복마다 1, -1, 1, -1을 반복하므로 짝수에 음수가 붙을 수 있음

- 증감식에는 쉼표로 구분해 하나 이상의 증감식을 써줄 수 있다.

- 조건값이 확실하지 않을 때는 true키워드를 사용해준다. (무한반복문)

문제+내 풀이
해설

 

 

 

[4-5]

=> 풀지 못한 문제 / 나중에 필히 다시 체크

증감식은 잘못 캡쳐됐음 (해설과 같은 증감식 사용)

변수 선언을 while(i<=10)위에 전부 해버려서 오류

int j=0; 선언을 while(j<=i)위에 선언했어야 함

문제 + 내 풀이
해설

 

 

 

[4-6]

문제 + 내 풀이
해설

 

 

 

[4-7]

문제 + 내 풀이

 

 

 

[4-8]

문제 + 내 풀이

 

 

[4-9]

=> char형에 charAt메서드 사용한 값을 옮겨담은 후 1의 유니코드 값을 이용해 -48해준뒤

int형 변수에 담아 계산했는데 결과값은 같았으나...

해설처럼 -'0'을 이용해 더 쉽게 int값으로 변환해줄 수 있음 기억하기 ㅠ

문제 + 기본 코드
내 풀이
해설

 

 

 

[4-10]

=> tmp라는 변수를 생성하지 않고 바로 sum에다 num%10을 대입해 코딩하는 것이 좀 더 깔끔

문제 + 기본 코드
내 풀이
해설

 

 

 

[4-11]

=> 풀지 못한 문제 / 나중에 다시 풀어보기

대입까지 다 제대로 했는데 println으로 출력하는 것을 빼먹어 풀지 못했음 ㅠ

문제 + 기본 코드
내 풀이
해설

 

 

[4-12]

=> 출력시 어디서 줄바꿈이 일어나고 for문을 어떻게 써줘야 하는지 제대로 파악 필요

풀지 못한 문제 / 나중에 다시 풀어보기

문제
해설

 

 

[4-13]

=> 내 프로그램상에 오류가 있는 건지 해설지의 코딩과 정답이 나와 반대됨

나는 내 해설로 했을 때 제대로 된 결과값을 얻었다.

처음에 if('0'<=ch && ch<='0') {isNumber = true}라고 프로그램을 짰는데 결과값이 틀렸었다.

해설이 맞다면 위 코드도 맞아야 하지 않나...?

이거는 다시 한 번 확인 필요

문제 + 기본 코드
내 풀이
해설

 

 

 

[4-14]

=> input값과 answer값이 다를 경우 나는 continue를 사용했는데

while(true)로 조건식이 무한반복문이므로

input == answer인 경우에 한해서만 반복문을 벗어나게 break사용해주면 된다.

(굳이 continue를 사용할 필요는 없었음)

문제 + 기본 코드
내 풀이
해설

 

 

 

[4-15]

=> 각 자리 별로 담긴 result값에 어떻게 자리값을 줘야하는지 고민하다 못 풀었는데

해설처럼 result*10을 tmp%10과 같이 더해주면 된다.

나중에 다시 풀어 볼 문제

문제 + 기본 코드
내 풀이
해설

 

 

 

 

<틀린 문제 : 4, 5, 11, 12, 15 >

 

*정답에 오류가 있으면 댓글로 알려주시면 감사하겠습니다! 🙏

반응형

'Study > Java 연습문제' 카테고리의 다른 글

03.연산자 Exercise (기본 코드/내 풀이/해설)  (0) 2023.01.15

댓글