2016-12-25 3 views
-3

У меня есть этот небольшой код:Input несовпадение Int

Scanner vloz = new Scanner(System.in); 
    int cisla = 0; 
    int i = 0; 
    while(i < 10){ 
      try { 
       System.out.println("Vloz cislo " + i + ":"); 
       int cislo = Integer.parseInt(vloz.nextLine()); 
       ++i; 
       cisla = cisla + cislo; 
       } 
      catch(InputMismatchException exception){ 
       System.out.println("Nevlozil si cislo!"); 
       } 
      } 
    float priemer = cisla/i; 
    System.out.println("Priemer cisel je " + priemer + "."); 
    } 
}  

, но всегда, когда я запускаю его и ввести другие charakters затем INT, сбой программы и не проходят через «уловом». Целью программы является то, когда набрано другое, а затем int отображается сообщение об ошибке, не добавляйте к int i и дайте другому пользователю возможность добавить intenger.

+3

Вы уверены, что исключение является «InputMismatchException», а не каким-либо другим типом исключения, например 'NumberFormatException'? –

+0

...... мой плохой .... очень спасибо за то, что я старался ... Я не поймал его ... теперь гладко –

ответ

0

Вы должны ловить NumberFormatException, а не InputMismatchException как так:

import java.util.Scanner; 

class Main { 
    public static void main(String[] args) { 
    Scanner vloz = new Scanner(System.in); 
    int cisla = 0; 
    int i = 0; 
    while(i < 10){ 
     try { 
     System.out.print("Vloz cislo " + i + ":"); 
     int cislo = Integer.parseInt(vloz.nextLine()); 
     i++; 
     cisla = cisla + cislo; 
     } catch(NumberFormatException exception) { 
     System.out.println("Nevlozil si cislo!"); 
     } 
    } 
    float priemer = cisla/i; 
    System.out.println("Priemer cisel je " + priemer + "."); 
    } 
} 

Попробуйте here!

0

Вы ловите неправильное исключение. Метод parseInt(String s) throws a NumberFormatExceptionне a InputMismatchException. Измените положение catch на catch(NumberFormatException exception).

0

импорт java.util. *; класс демонстрационная общественности {

public static void main (String []args){ 

    Scanner vloz = new Scanner(System.in); 
    int cisla = 0; 
    int i = 0; 
    while(i < 10){ 
      try { 
       System.out.println("Vloz cislo " + i + ":"); 
       int cislo = Integer.parseInt(vloz.nextLine()); 
       ++i; 
       cisla = cisla + cislo; 
       } 
      catch(InputMismatchException exception){ 
       System.out.println("Nevlozil si cislo!"); 
       } 
      } 
    float priemer = cisla/i; 
    System.out.println("Priemer cisel je " + priemer + "."); 

} 

}

Я не знаю, почему он разбился, но этот код работает. Я думаю, что вы, возможно, забыли import.java. *;