이것이 자바다 5장을 공부하고 퀴즈를 풀었는데, 구현이 어려워 보이는 문제가 있었다.
못풀수도 있겠다는 생각으로 코드를 작성해보는데, 하나씩 생각해보며 접근하니까 문제가 풀렸다.
물론 쉬운 문제였지만, 이전의 나보다 조금은 성장한 것 같았다!
if (selectNo == 1) {
// 학생 수 입력을 받는다.
System.out.print("학생수>");
studentNum = scanner.nextInt();
} else if (selectNo == 2) {
// 학생 수 만큼 배열이 생성되고 점수를 입력 받는다.
scores = new int[studentNum];
for (int i=0; i<scores.length; i++) {
System.out.print("scores["+i+"]>");
scores[i] = scanner.nextInt();
}
} else if (selectNo == 3) {
// 조회
for (int i=0; i<scores.length; i++) {
System.out.println("scores[" + i + "]: " + scores[i]);
}
} else if (selectNo == 4) {
// 최대값, 평균
int sum = 0;
for (int i=0; i<scores.length; i++) {
sum += scores[i];
if (scores[i] > max) {
max = scores[i];
}
}
avg = (double) sum/studentNum;
System.out.println("최고 점수: " + max);
System.out.println("평균 점수: " + avg);
} else if (selectNo == 5) {
run = false;
}
구현이 성공적으로 이루어졌을때 출력되어야 할 결과와 대조해보면서, 하나씩 생각해보며 해보니까 풀렸다.
앞으로도, 하나씩 생각해보며 차근차근 접근해보려 노력해야겠다는 생각이 들었다.
거북이반 스터디중에 내가 생각해보지 못한 부분이 있어 남긴다
switch (month) {
case 2:
day = (year%4 == 0 && (year%100 != 0 || year%400 == 0)) ? 29 : 28;
break;
case 4: case 6: case 9: case 11:
day = 30;
break;
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
day = 31;
break;
default:
day = 0;
}
입력한 년,월에 따라 마지막 날짜를 출력해보는 코드인데, 삼항연산자를 이렇게 활용할 수 있구나를 알 수 있어서 적어보았다.
코드 흐름에 대한 집중
하나씩 차근차근 생각해보며 접근하기
어떤 식의 구성인지 항상 생각해보기