TIL_230525

지인·2023년 5월 25일
0

TIL

목록 보기
12/38

🐰 오류

      🥕 for문을 돌면서 숫자가 계속 1이 출력되고 1번에 출력되야 하는 레시피가           출력되지 않는 문제

                while (true) {
                    String text = sc.nextLine();
                    int textNum = 0;
                    if (Objects.equals(text,"끝")) {
                        break;
                    }
                    textNum++;
                    foodMap.put(textNum, text);
                }
                System.out.println("[ List 으로 저장된 " + title + " ]");
                for (String value: foodMap.values()) {
                	int mapNum = 1;
                    System.out.println(mapNum + ". " + value);
                    mapNum++;
                }

🐰 예상결과

[ List 으로 저장된 백종원의 요리 레시피 ]
1. 물을 끓이고
2. 스프를 넣는다

🐰 결과

[ List 으로 저장된 백종원의 요리 레시피 ]
1. 
1. 스프를 넣는다

🐰 이유

  • textNummapNum 변수를 while문과 for문이 돌아가고 있을 때 선언 및 초기화를 해서 항상 같은 값을 갖게 된다. 반복문 전에 변수를 초기화해 두어야 숫자가 늘어난다.

  • 최종 코드

				int textNum = 0;
                while (true) {
                    String text = sc.nextLine();
                    if (Objects.equals(text,"끝")) {
                        break;
                    }
                    textNum++;
                    foodMap.put(textNum, text);
                }
                System.out.println("[ List 으로 저장된 " + title + " ]");
                int mapNum = 1;
                for (String value: foodMap.values()) 
                	
                    System.out.println(mapNum + ". " + value);
                    mapNum++;
                }

🐰

🥕 scanner 문제인가 해서 nextLine을 추가해 보았지만 바뀌는 건 없었다. 근데 Set 은 잘 작동을 하는게 이상해서 비교해봤다. Set 에서는 for 문이 돌기 전에 선언 및 할당을 해 놨었기에 문제가 없다는걸 확인했다.

profile
열쩡

0개의 댓글