문제와 풀이4 문제점
30
작성한 질문수 1
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
현재 숫자로 입력 옵션을 처리하는 것은 문제가 있습니다. 만일, 실수로 문자를 입력 할 경우 에러가 발생하여 팅겨버리게 됩니다. 이것은 버그라고 판단 될 수 있습니다. 또한, "올바른 옵션을 선택해 주세요"를 처리하지 못하게 됩니다. 따라서 문자로 처리해야 아무런 문제가 없이 정상적으로 해당 프로그램이 작동합니다. 이점을 참고하여 주세요.
package scanner.ex4; import java.util.Scanner; public class ScannerEx2 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int totalCost = 0; while (true){ System.out.print("1: 상품 입력, 2: 결재, 3: 프로그램 종료 : "); String option = input.nextLine(); if(option.equals("1")){ System.out.print("상품명을 입력하세요 : "); String name = input.nextLine(); System.out.print("상품의 가격을 입력하세요 : "); int price = input.nextInt(); System.out.print("구매 수량을 입력하세요 : "); int count = input.nextInt(); input.nextLine(); totalCost += price count; System.out.println("상품명:" + name + ", " + "가격:" + price + "원, " + "수량:" + count + ", " + "소계:" + (price count) + "원"); System.out.println("=================================================="); } else if (option.equals("2")) { System.out.println("총 비용 : " + totalCost + "원"); totalCost = 0; } else if (option.equals("3")) { System.out.println("프로그램을 종료합니다."); break; } else { System.out.println("올바른 옵션을 선택해 주세요."); } } } }
답변 2
0
안녕하세요. 하나일 (해와별을품은아빠)님, 공식 서포터즈 OMG입니다.
본 강의의 난이도와 수강생 분들이 프로그래밍을 입문하는 수준임을 고려하여
말씀하신 예외처리까지는 고려되어 있지 않고, 문제의 요구사항만을 만족하면 문제를 잘 해결하신 것으로 간주하였다고 보시면 될 것 같습니다.
물론 실무에서는 예외처리가 고려되어야 하는게 맞습니다 😀
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
해와별을품은아빠님께서 “문제와 풀이4” 강의의 문제점을 지적해 주셨군요. 주신 코드는 사용자 입력 값을 처리할 때, 숫자 입력을 문자로 받은 후 비교하여 처리하는 방법을 사용하고 있습니다. 이는 문자열을 통해 입력값을 받음으로써 잘못된 값을 입력했을 때 발생할 수 있는 문제를 방지하는 좋은 방법입니다.
Java에서 숫자를 입력받을 때 바로 숫자로 변환하지 않고 문자열로 받아 비교하면, 사용자가 의도치 않게 문자를 입력했을 때 발생할 수 있는 에러를 막을 수 있습니다. 사용자가 잘못된 옵션을 입력했을 경우에도 에러 없이 “올바른 옵션을 선택해 주세요.“라는 메시지를 출력할 수 있어 프로그램의 안전성이 증가합니다.
관련 질문과 답변은 다음 링크에서 참고하실 수 있습니다:
Java 입력 오류 처리 - 문자를 숫자로 변환 오류 방지: 문자를 숫자로 변환하는 중 발생할 수 있는 오류를 어떻게 방지할 수 있는지 설명하고 있습니다.
Scanner 사용 중 발생할 수 있는 입력 에러 해결:
nextInt()사용 시 발생할 수 있는 입력 에러와 관련된 문제를 해결하는 방법이 제시되어 있습니다.
이러한 코드를 통해 프로그램이 더 안정적이고 사용자가 다양한 입력 상황에서 프로그램을 쉽게 사용할 수 있게 됩니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
문제풀이 시간마다 방향성
0
30
2
피라미드 문제 풀이
0
67
1
ScannerWhile3 예제 코드 질문
0
49
1
짝수 출력 문제 질문
0
46
1
Array 연습 문제 5번 질문입니다.
0
81
2
단축어가 이상하게 나옵니다
0
126
2
Sql강의
0
82
1
array 문제풀이 2번 질문입니다.
0
53
1
JAVA입문 / 메서드편 문제와 풀이2
0
44
1
인텔리제이 무료버젼이 통합되었다는데 30일 무료버전이면 어떻게 사용하나요
1
767
3
OperationEx3에서 꼭 boolean을 써야 하나요?
0
56
1
for, while문 작성
0
63
1
68강 ArrayEx6 클래스 질문
0
56
1
IO.println(String.format("Hello and welcome!"));
0
139
2
소스코드 실행이 안돼요
0
114
2
메서드 문제와 풀이2에서 마지막 문제 이렇게 풀어도 괜찮은 건가요..?
0
77
1
While과 for 스코프 질문
0
59
1
김영한 java 입문 설치 질문
0
135
2
버퍼문제?
0
50
1
for문 피라미드 찍는거 질문
0
74
1
21버전이 없고, 강의 메뉴얼 확인해보면 된다는 김영한 선생님 답변 확인했습니다.
0
366
1
3번 문제 질문 있습니다.
0
93
2
sout에는 변수가 하나만 들어가야 하나요?
0
131
1
21버전이 없어요 ㅠ
0
317
2





