Troubleshooting: 무엇이 문제였는가? 11

4단계: "get() 메서드에 가장 적절한 인덱스(index)는?"

[문제]package com.example.kiosk.level4;// 메인(main)import java.util.*;public class KioskLvFour { public static void main(String[] args) { System.out.println(); System.out.println("[MAIN MENU]"); List allMenus = new ArrayList(); Menu menuBurger = new Menu("Burgers", new ArrayList()); Menu menuDrink = new Menu("Drinks", new ArrayList()); Menu menuSide = ne..

3단계: "Variable 'menuItems' initializer 'new ArrayList<>()' is redundant"

[인용 및 참고 자료 출처]1. 사전: "redundant", 네이버 영어사전, 네이버 영어사전, (2024.11.25) [문제] (링크: 첫 번째 노란 경고 해결 과정)package com.example.kiosk.level3;import java.util.*;// Kiosk 클래스public class Kiosk { Scanner sc = new Scanner(System.in); List menuItems = new ArrayList(); // [문제] 위의 코드 한 줄에서 노란 전구가 깜빡였다. public Kiosk(List menuItems) { this.menuItems = menuItems; } public void start() { ..

3단계: "Field can be converted to a local variable"

[문제]package com.example.kiosk.level3;// Kiosk 클래스import java.util.*;public class Kiosk { Scanner sc = new Scanner(System.in); List menuItems = new ArrayList(); private int index; // [문제] 위의 코드 두 줄에서 노란 전구가 깜빡였다. public Kiosk(List menuItems) { this.menuItems = menuItems; } public void start() { for (index = 0; index = 5 || index == 0) { System.out..

3단계: "아이고, 믿는 sout에 발등 찍힌다더니!"

[문제]package com.example.kiosk.level3;import java.util.*;public class Kiosk { Scanner sc = new Scanner(System.in); List menuItems; public Kiosk(List menuItems) { this.menuItems = menuItems; } public void start() { int index; for (index = 0; index = 5 || index == 0) { System.out.println("메뉴 번호 외에 다른 숫자를 입력했습니다. 프로그램을 종료합니다."); break..

2단계: "숫자를 아무리 더해도 1만 나올 때 심정이란?"

[해결하려 한 원래 문제]문제 소개 REVIEW 007 링크 [해결 과정 중 겪은 문제]package com.example.kiosk.level2;// [A] MenuItem 클래스public class MenuItem { private String name; private double price; private String description; public int menuNum=1; // [수정 전] 멤버변수 총 3개: name, price, description // [수정 후] 멤버변수 총 4개: menuNum 추가 선언 및 1로 초기화 public MenuItem(String name, double price, String description) { ..

1단계: "반복문 밖에서 변수를 선언했더니 햄버거가 비처럼 내리네!"

[문제]package com.example.kiosk;import java.util.*;public class KioskLvOne { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println(); System.out.println("[ GRILL&THRILL MENU ]"); double[] price = new double[4]; price[0] = 6.9; price[1] = 8.9; price[2] = 6.9; price[3] = 5.4; String[] priceSt..

2단계: "반복문 안에서 인스턴스화를 했다고요? 갑부시군요!"

[문제]분명 가장 먼저 저장된 결괏값을 삭제하지 않았으니 나누기 연산을 했을 때 [55, 3]이 출력되어야 하는데 [3]이 출력되었다. 처음에는 클래스를 작성할 때 for문 같은 반복문을 쓰지 않아서 발생한 문제인 줄 알았다.  [원인 추측]package com.project.personal.calculator2;import java.util.*;public class CalcLvTwo { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (true) { System.out.print("0 이상인 첫 번째 정수를 입력해 주세요: "); ..

2단계: 절차 지향 add() vs 객체 지향 add()

[문제]package com.project.personal.calculator2;import java.util.*;// [참고] 패키지 전체를 불러오고 싶을 때 사용public class Calculator { ArrayList results = new ArrayList(); public Calculator() { } public int calculate(int numOne, String operator, int numTwo) { if (operator.equals("+")) { return numOne + numTwo; } else if (operator.equals("-")) { return numOne - numT..

2단계: 반환타입이 int라서 return "문자열"이 불가능할 때

[문제]package com.project.personal.calculator;public class Calculator { public Calculator() { } public int calculate(int numOne, String operator, int numTwo) { if (operator.equals("+")) { return numOne + numTwo; } else if (operator.equals("-")) { return numOne - numTwo; } else if (operator.equals("*")) { return numOne * numTwo; ..

2단계: sc.nextLine(); vs sc.next();

[문제]package com.project.personal.calculator;import java.util.*;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("첫 번째 숫자를 입력해 주세요: "); int numFirst = sc.nextInt(); System.out.print("사칙연산 기호(+, -, *, /) 중 하나를 입력해 주세요: "); String operator = sc.nextLine(); // [원인 추측] print 대신 println이라고 해야..