web-dev-qa-db-ja.com

スレッド「メイン」の例外Java.util.InputMismatchException

私はJavaでの1つの演習で助けが必要です、私はこのエラーに多分2時間行き詰っています。どんな助けでも素晴らしいでしょう。

Exception in thread "main" Java.util.InputMismatchException
    at Java.util.Scanner.throwFor(Scanner.Java:909)
    at Java.util.Scanner.next(Scanner.Java:1530)
    at Java.util.Scanner.nextInt(Scanner.Java:2160)
    at Java.util.Scanner.nextInt(Scanner.Java:2119)
    at prodavnica.Prodavnica.main(Prodavnica.Java:60)
Java Result: 1


package prodavnica;

public class Proizvod {

    private String ime_proizvod;
    private static int cena;

    public Proizvod(String ime_proizvod, int cena) {
        this.ime_proizvod = ime_proizvod;
        this.cena=cena;
    }

    public String getIme_proizvod() {
        return ime_proizvod;
    }

    public void setIme_proizvod(String ime_proizvod) {
        this.ime_proizvod = ime_proizvod;
    }

    public static int getCena() {
        return cena;
    }

    public static void setCena(int cena) {
        Proizvod.cena = cena;
    }

    public void pecatiPodatoci(){
        System.out.println("Ime: "+ime_proizvod+" Cena: "+cena);
    }

}

そして:

package prodavnica;

import Java.util.Scanner;

public class Prodavnica {

    private String ime_prodavnica;
    private Proizvod proizvodi[]=new Proizvod[20];

    public Prodavnica(String ime_prodavnica) {
        this.ime_prodavnica = ime_prodavnica;
    }

    int br=0;

    public void dodadiProizvod(Proizvod p){
        proizvodi[br]=p;
        br++;
    }

      public Proizvod najskapProizvod(){

        Proizvod max=proizvodi[0];

        for(int r=0;r<proizvodi.length;r++){

            if(max.getCena()<proizvodi[r+1].getCena()){
                max=proizvodi[r+1];
            }
        }
        return max;

    }


    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);


        Prodavnica pro1=new Prodavnica("Tinex");

        int n;

        System.out.println("Vnesete kolku proizvodi ke stavite: ");
        n=input.nextInt();



        String imer = input.nextLine();
        int cenar = input.nextInt();


        pro1.dodadiProizvod(new Proizvod(imer, cenar));


        System.out.println("Ime-pr: "+pro1.proizvodi[0].getIme_proizvod()+" Cena= "+pro1.proizvodi[0].getCena());
    }

}

入力できませんProizvodクラスの変数「proizvodi」の文字列「imer」または整数「cenar」。

何か助けは?このエラーが発生する理由ありがとう!

7
tonyhlav

この例外はスキャナーによってスローされ、取得したトークンが予期されるタイプのパターンと一致しないか、またはトークンが予期されるタイプの範囲外であることを示します。

String imer = input.next();// Use for String Input
input.nextLine();//Use for next line of input
int cenar = input.nextInt();
7
Raju Rathore

Imerまたはcenarに到達する前に、intを挿入する必要があります。

n=input.nextInt();

この行は何も実行していないようです。削除するか、imerまたはcenarの値を入力する前に数値を入力してください。

1
M21B8