[문제]
public class ArrayPrac4 {
public static void main(String[] args) {
String[][] nations = {
{"싱가포르","말레이시아","인도네시아","베트남","태국"},
{"그리스","독일","이탈리아","스위스","폴란드"},
{"우간다","에티오피아","탄자니아","케냐","모로코"}
};
for (int i=0; i < nations.length; i++){
for (int g=0; g < nations[i].length; i++) {
System.out.print(nations[i][g]+" ");
}
System.out.println();
}
}
}
REVIEW 003을 해결하고 신나서 자바 프로그램을 실행했다가 다시 표정이 굳어버렸다. 글쓰기가 취미라지만 오답 노트 쓰기를 좋아하진 않는데 왜 자꾸 산 넘어서 산일까. 해당 오류는 강의를 들으며 실습할 때도 몇 번 발생했으나, 반복문을 지우고 다시 쓰면 또 출력 행위가 잘만 이루어져서 그러려니 했다. 그러다 오늘 '누가 이기나 보자'라는 심보로 두 번째 틀린 그림 찾기를 했다.
[원인]
for (int i=0; i < nations.length; i++){
for (int g=0; g < nations[i].length; i++) {
// [오답] i++
// [정답] g++
System.out.print(nations[i][g]+" ");
}
System.out.println();
}
역시 원인은 처음에 오류 발견했다고 신나서 키보드를 급하게 두들긴 손에 있었다. 아무래도 nations[i].length를 입력하면서 g가 아닌 i를 적은 듯했다. 중첩된 for문의 조건식에서 이름을 g로 지어놓고는 왜 i라고 적었을까.
[해결]
public class ArrayPrac4 {
public static void main(String[] args) {
String[][] nations = {
{"싱가포르","말레이시아","인도네시아","베트남","태국"},
{"그리스","독일","이탈리아","스위스","폴란드"},
{"우간다","에티오피아","탄자니아","케냐","모로코"}
};
for (int i=0; i < nations.length; i++){
for (int g=0; g < nations[i].length; g++) {
System.out.print(nations[i][g]+" ");
}
System.out.println();
}
}
}
오답 노트를 기록하며 '급할수록 돌아가라'는 말이 떠올랐다. 어쩌면 이런 실수는 너무 사소하고 하찮아서 눈으로 쓱 반성하고 넘겨도 그만일 수 있겠지만, 배운 내용이 좀 가물가물하기만 해도 불안감이 쉽게 올라오는 사람으로서 그러기가 힘들다. 어쨌든 그렇게 실수한 코딩을 집요하게 물고 늘어진 덕분에 원인을 찾고 오류를 해결해서 뿌듯하다.
'오답 노트-자바(Java)' 카테고리의 다른 글
24.11.13(수) "변수 전용 작명소는 없나요?" (1단계 계산기) (0) | 2024.11.24 |
---|---|
24.11.06(수) "뭐야, 내 3만 원 돌려줘요." (0) | 2024.11.07 |
24.11.03(일) "int indexN < nations.length;" (0) | 2024.11.03 |
24.10.29(화) "31세도 40대, 25세도 40대입니다." (0) | 2024.10.30 |
24.10.29(화) "53대 이상입니다." (0) | 2024.10.30 |