2014-01-15 96 views
4

我需要一個在java練習的幫助,我被困在這個錯誤2小時也許。任何幫助都會很棒。線程「主」異常java.util.InputMismatchException

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); 
    } 

} 

AND:

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」 整型 「cenar」。

任何幫助?爲什麼我得到這個錯誤?謝謝!

+0

後,你得到這個工作,閱讀:[跳過nextLine()後使用nextInt()](http://stackoverflow.com/questions/13102045/skipping-nextline-after-use-nextint) –

回答

2

此異常由掃描程序拋出,以指示檢索到的標記與預期類型的​​模式不匹配,或標記超出預期類型的​​範圍。

String imer = input.next();// Use for String Input 
input.nextLine();//Use for next line of input 
int cenar = input.nextInt(); 
+0

謝謝!這真的有幫助!我不知道你只能使用「input.next()」。非常感謝! – tonyhlav

1

你需要把一個int在你到達包打水或cenar前:

n=input.nextInt(); 

此行不似乎做任何事情,無論是刪除它,或者把一些在你把你的前imer或cenar值。

相關問題