트러블슈팅 29

24.11.22(금) "1111 말고 1234 출력하기 by static" (2단계 키오스크)

package com.example.kiosk.level2;public class MenuItem { /* [멤버 변수] [a] 객체로 생성될 때 메모리에 저장된다. [b] 객체마다 주솟값이 다르다. */ private String name; private double price; private String description; public int menuNUm; // [수정 전] public int menuNUm=1; // [수정 후] public int menuNum; /* [정적 변수] [a] 멤버 변수와 달리 무조건 한 군데에만 저장된다. [b] 코드가 실행될 때 메모리에 저장되고 프로그램이 종료될 때만 삭제된다...

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) { ..

24.11.22(금) "1111 말고 1234 부탁드려요. 제발요!" (2단계 키오스크)

[문제]package com.example.kiosk.level2;// [A] MenuItem 클래스 public class MenuItem { // [1] 속성 (== 멤버변수) private String name; private double price; private String description; // [2] 생성자 (== 조립 설명서) public MenuItem(String name, double price, String description) { this.name = name; this.price = price; this.description = description; } // [3] 기능 (==..

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단계: 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이라고 해야..