2017-12-16 12 views
0

실행하려는 프로그램입니다. 나는 두 개의 서로 다른 시스템에서 시도하고 두 가지 모두 정확히 동일한 오류 메시지가 나타납니다. 10 진수와 같은 가격 (예 : 4.2)을 입력 할 때마다 오류 메시지가 나타납니다. 프로그램에 대한여러 시스템 및 프로그램에서 동일한 오류가 발생합니다.

코드 :

package grocerylist; 
import java.util.Scanner; 

public class GroceryList { 
    public static void main(String[] args) { 
     float [] prices = new float [5]; 
     Scanner in = new Scanner (System.in); 
     System.out.println("Enter 5 prices: "); 
     prices[0] = in.nextFloat(); 
     prices[1] = in.nextFloat(); 
     prices[2] = in.nextFloat(); 
     prices[3] = in.nextFloat(); 
     prices[4] = in.nextFloat(); 
     float total = prices[0] + prices[1] + prices[2] + prices[3] + prices[4]; 
     System.out.println("The total of the 5 items are: "+total);   
    } 
} 

오류 메시지는 라인 (12)에 있고 이렇게되면 :

Exception in thread "main" java.util.InputMismatchException 
at java.util.Scanner.throwFor(Scanner.java:864) 
at java.util.Scanner.next(Scanner.java:1485) 
at java.util.Scanner.nextFloat(Scanner.java:2345) 
at grocerylist.GroceryList.main(GroceryList.java:21) 

C : \ 사용자 [사용자 이름] \의 AppData \ 로컬 \ 넷빈즈 \ 캐시 \ 8.2 \ executor-snippets \ debug.xml : 83 : Java가 반환되었습니다 : 1

+0

당신은'prices [5]'를 사용하고 있지만 최대 인덱스는 4입니다. 또한 코드를 편집하십시오. 부분적으로 일반 텍스트로 표시됩니다. 또한 오류로보고 된 행 번호를 지적하십시오. – Marc

+0

@Marc이지만 오류는'Scanner in = new Scanner (System.in); 또는 후속 in.nextFloat(); 부분 –

+0

@Marc에서 가격에 대한 5 번째 색인을 제거했습니다. 그리고 오류 12 줄에 – Hjalla1

답변

0

해결책은 처음 상상했던 것보다 간단했습니다. @DualCoreMax는 솔루션에 대한 올바른 사고 방식을 가졌습니다. 사용자가 가격을 입력 할 때 쉼표 기호를 사용하여 정수와 십진수를 구별해야합니다.

나는 내 손에 큰 문제가 있다는 것을 진지하게 생각했다. 기쁜 것은 내 어리 석음의 문제 다. 1 학년 학생, 저를 도와 주신 모든 분들께 감사드립니다.