🥕 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. 스프를 넣는다
textNum
과 mapNum
변수를 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 문이 돌기 전에 선언 및 할당을 해 놨었기에 문제가 없다는걸 확인했다.