공부한 내용
인수
라는 용어는 ‘인’과 ‘수’의 합성어로, ‘들어가는 수’라는 의미를 가진다. 즉, 메서드 내부로 들어가는 값
을 의미한다. 인자도 같은 의미이다.메서드 시그니처 = 메서드 이름 + 매개변수 타입(순서)
메서드 이름이 같아도 메서드 시그니처가 다르면 다른 메서드로 간주한다.
문제
import java.util.Scanner;
public class ProductAdminEx {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int maxProducts = 10;
String[] productNames = new String[maxProducts];
int[] productPrices = new int[maxProducts];
int productCount = 0;
while (true) {
System.out.println("1. 상품 등록\t|\t2. 상품 목록\t|\t3. 종료");
System.out.print("메뉴를 선택하세요: ");
int menus = sc.nextInt();
sc.nextLine();
if (menus == 1) {
if (productCount == 10) {
System.out.println("더 이상 상품을 등록할 수 없습니다.");
continue;
}
System.out.print("상품 이름을 입력하세요: ");
productNames[productCount] = sc.nextLine();
System.out.print("상품 가격을 입력하세요: ");
productPrices[productCount] = sc.nextInt();
productCount++;
} else if (menus == 2) {
if (productCount == 10) {
System.out.println("등록된 상품이 없습니다.");
continue;
}
for (int i = 0; i < productCount; i++) {
System.out.println(productNames[i] + ": " + productPrices[i] + "원");
}
} else if (menus == 3) {
System.out.println("프로그램을 종료합니다.");
break;
} else {
System.out.println("잘못된 메뉴를 선택하셨습니다.");
}
}
}
}
처음 완성을 했을 때, 상품 이름을 입력하지 않았는데 넘어가는 문제가 있었음.
System.out.print("메뉴를 선택하세요: ");
int menus = sc.nextInt();
sc.nextLine();
해당 부분에 sc.nextLine();을 넣어주지 않아서 메뉴를 입력하고 \n이 넘어가면서 문제가 됐던 것
머리로는 알고 있었지만 코드를 짜면서 간과하고 넘어감.. (영한님도 틀림ㅋㅋ)
하루를 돌아보며, TMI
김영한의 자바 입문 완강!
참고자료