본문 바로가기
코딩 해보자

220621 일주일만에 복귀 , 큰일났다

by friendlyboy 2022. 6. 22.

자바 진도를 다 빼느라 정신이 하나도 없었다.

오늘로써 자바는 끝났다고 보면 되는데

며칠전부터 SQL과 같이 배우고 있었다. 

그것마저 이번주안에 끝난다고 한다. 그리고

html과 css배울 예정.

하지만 자바는 계속 꾸준히 강의 돌려보고 문제 풀어봐야한다

자바를 가장 많이 웹에서 사용하기 때문에.

지금 학원말고 개인적으로는 메소드까지는 돌려봤는데

아직 어디서 메소드를 써야할지 서투르다.

링크라고 보면 되겠다 이정도로 ..

아 그리고 객체는 진짜 그냥 아예 공식을 외워버려야 겠다

클래스명 객체변수 = new 클래스명();

그리고 public void 클래스 만들어서

this.변수 = 변수;

초기화까지.

파란색으로 바뀌는 것이 그 값을 받는다는 거는 이제 알겠다.

 

하지만.. 문제 풀때 메인만 쓰지 아직 참조클래스 , 메소드는.. ㅠㅠ 

 

좋은 소식은, 재시험과 본시험 두개다 90점을 넘겨서 통과했다는 점

매우 만족한다.

 

Quiz_Drill_07 1번문제

범위 외 입력은 유효성 검사를 실시하여 재입력 받음. 반복문에 조건문을 걸어서.. 일단 먼저 코드 부터 짜자

 

배열을 만들어서 입력 값을 집어 넣어준다. 

Arrays.toString을 사용하면 정렬되어 출력되는데

이전에 미리 Arrays.sort로 오름차순으로 정렬해두면 작은 값과 큰 값을 바로 구할 수 있다.

이렇게 순차적으로 출력되는데, num[ ] 배열에서 i값은 cnt 값보다 작을 때 증가한다.

만약에 5만큼 입력 받을거야 해서 5를 넣었으면 i는 0,1,2,3,4까지 증가한다.

그러므로 배열에서 가장 작은 값이 있는 곳은 num [ 0 ] 이고

가장 큰 값이 저장되어 있는 곳은 num [ cnt -1] 이 된다.

 

평균을 구하라. 

평균은 배열에 들어간 값들의 총합을 배열의 크기만큼 나눠주면 된다.

입력값들의 합 / 입력한 갯수 = 평균

그래서 처음에는 int sum = 0; 으로 초기화한 변수를 설정했고

for문 안에서 반복적으로 배열 값들이 += 되도록 했다.

그런데 문제를 보니 소수점 첫째 자리까지 출력되네?? double이네 해서 

다시 수정했다.

 

오마이갓. 첫째자리가 아니라 계속 나온다.

이를 해결하려면 간단하게 printf로 바꾸고 %.1f를 써주면 되지!

sum/cnt는 새로운 변수를 만들어서 저장해주고 그 변수를 출력해줄거다

 

double average 라는 변수에 계산식을 넣어주고 출력하니 완성~

 

이제 크나큰 복병이 등장했으니... 바로 유효성 검사 

while(true)문을 사용하여 반복으로 돌리긴 했으나

break;를 사용할 곳을 찾아 다니느라 바빴다.

 

근데 찾아보니까 그냥 if문 안에서 써도 되네!?

그래서 else 문 끝에 모두 출력된 후에 break;써주었더니

이렇게 말끔하게 출력되었다.

 

확실히 블로그에 뭔가를 올린다는 부담? 생각이 문제에 더욱 집중할 수 있게 만들어준다.

그리고... 오늘은 문제도 문제지만.. 어제 오늘 배운 거 복습을 해야겠다..

너무 많이 밀려서 한번은 봐야 할 것 같아 ㅠ

댓글