(보충) 자바 연습문제 - 10문제 중 6문제 이상(10점)

NA YE SOM·2023년 7월 20일
0

-알집 파일 그대로 부르기


  • 평가 문제랑 재평가 문제 섞여있음

1. 절대값 구하기

int number에 저장된 절대값을 계산하여 int absNumber에 저장하고 출력하시오.

2. <if ~ else, if ~ else문> 나이에 따른 구분하기

두개 이상의 조건을 판단할 수 있음

If(조건1){
문장1;
문장2;
}
-> 참인 경우 문장1, 문장2 실행
else if(조건 2){
문장3;
문장4;
}
-> 거짓인 경우 문장3, 문장4 시행
...
}
else{
...
}
-> 어떤 조건도 거짓 : 마지막 else 다음 있는 문장 실행함


-> 문자를 숫자로 바꿀때 parsing method를 써야함 (Integer.parseInt 문자열을 분석해서 처리)


-> 2번째 if

-> 0보다 작은것들은 아까 다 나가서 0보다 작은거 작성할 필요 없음

3.너비가 int width, 높이가 int height인 삼각형의 넓이를 계산하여 double area에 저장한 뒤 출력하시오.



-> 이렇게 하면 답이 4가 나옴




다 int 라서 int끼리 나누기 : 몫을 구하는것

(ex) 나누기는 앞 뒤 있으면 ) 몫 , 실수가 앞뒤 섞여있으면 나누기로 동작


-> 연산에 더블 데이터를 섞어줌
(double이 하나라도 섞여있어야 double이 답이 될 수 있음)

4.int month에 저장된 월의 계절과 해당 월이 며칠까지 있는지 출력하시오.


-> index 랑 month랑 똑같은 요소로 맞추려고
int 0이 0인 이유?
int 1인 요소 31 - 1월의 마지막 날

int 2인 요소 28 - 2월의 마지막 날
....


  1. %12(12로 나눈 나머지)
  2. /3(/ 몫 구하는 것 : 0)


-> month



-> 반환이 없는void 메소드라면 return실행못하게 막음

-> return 대신 else 로 풀수있음

5. int a, b에 저장된 값 중에서 정수 10과 더 가까운 값을 출력하시오.

(큰수 - 작은수)

-> 10과 A와의 차이 구하기

-> 조건연산자 ( ? : ) -> a와 10이 같은건 고려안해도 됨

6. int money를 오만원권, 만원권, 오천원권, 천원권, 오백원 동전, 백원 동전, 오십원 동전, 십원 동전, 오원 동전, 일원 동전이 각각 몇 개로 변환되는지 출력하시오.



-> unit : 각 화폐단위


-> 답이 최대 10개가 나올 수 있음

-> 5만원짜리가 1개 필요


-> 0나오는 화폐단위는 출력하지 않는다


-> 1/5 1/2

7.int second에 저장된 초를 시/분/초로 변환하여 출력하시오.

한시간밑에는 분만 처리하겠다

8. int number의 첫 번째 글자가 1,3,5이면 "남자", 2,4,6이면 "여자"를 출력하시오.


-> 1 / 234567
-> 12/ 34567
-> 123/4567



-> 0하나 빼면 달라짐

-> 123만 : 1234567


-> 홀수 : 2로 나눈 나머지가 1이거나 0이 아니다


-> switch에서 default
-> case 여러개일때 나열하면 됨

  • 카프리카 수

9. 구구단을 모두 출력하지 말고 5 x 5 = 25까지만 출력하시오.


5*5 찍었으면 종료


-> break는 안쪽 for문에 붙었음
-> break 밟으면 ) 6단 만들고 -> 만족을 안하니까 -> **바깥쪽 for문이 끝나서 끝냄

바깥쪽으로 가면 dan++을 해서 6을 만들고

for문에다가 이름 붙이기 (:콜론 for문 앞에다)




-> outer 깨고 나가겠음(바깥쪽 for문 깨고 나가겠음)

-> 2중, 3중 for문 되면 바깥으로 바로 나가기 어려움
-> 라벨 붙여놓고(outer) break 바로 깨고 나갈 수 있음

10. begin부터 end 사이의 모든 정수들의 평균을 출력하시오.

11. 1부터 100 사이의 모든 3의 배수를 더한 결과를 출력하시오.



-> 다 int라서 결과 int나옴
-> 소수 섞어주기 (1 -> 1.0)

12.배열에 저장된 모든 정수를 모두 더하시오.


-> 나중에는 내부에서 for문을 돌려주는 method있음

향상된 for문

13. 제시된 배열 a에 상수 TARGET과 동일한 문자가 몇 개 포함되어 있는지 갯수를 구해서 출력하시오.


-> 갯수를 구하는 아이 : count

14. 점수에 따라 가져갈 수 있는 모든 사은품을 출력하시오.


-> 문자열로 저장 -> 숫자로 바꾸기

-> static 메소드(Integer.parseInt)

-> 누적의 개념으로 풀기!

-> 시작은 ""(빈문자열)로 없음으로 시작


-> gift 에 행주를 누적
-> 문자열 +는 연결

-> 60이상이 아니라면 (else) : 60보다 작다는 소리임
-> else if 사용 불가

null로 바꿔서 (String gift = null;)



-> ★문자열 연결하고 싶을때) null쓰면 안됨(글자로 붙어버림)

-> boolean 값 초기화 ) false주는 것이 거의 정답임

break를 적지않은 switch문으로 풀 수 있음(답은 거꾸로 나옴)- 의도적으로 break를 빼고 구성(ex) 보안수준 : 3 -> ~이런것 할 수 있음


-> 원래는 break써야하는데 의도적으로 적지 않음

-> switch끝날때까지, break만날때까지 4개 다 붙이고
-> 10점대이면 10으로 진입
-> 80점이면 8로 진입

profile
개발자 velog

2개의 댓글

comment-user-thumbnail
2023년 7월 20일

항상 좋은 글 감사합니다.

1개의 답글