Boa noite, estou aprendendo java e estou tentando fazer uma calculadora de notas.
Tudo funciona bem quando insiro números inteiros, mas a história muda quando eu insiro números quebrados, seja com virgula ou com ponto, ai recebo esse erro:
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Unknown Source)
at java.util.Scanner.next(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at java.util.Scanner.nextInt(Unknown Source)
at Notas.main(Notas.java:15)
Esse é o meu código:
[code]import java.util.Scanner;
import java.util.Locale;
public class Notas{
public static void main(String[] args) {
double nota1, nota2, nota3, nota4;
Scanner sc=new Scanner(System.in);
sc.useLocale(Locale.ENGLISH);
System.out.println("Insira sua nota da prova 1: ");
nota1 = sc.nextInt();
if (nota1 >= 0 && nota1 <= 10 ) {
nota1 = nota1;
} else {
System.out.println("Insira um valor entre 0 e 10");
System.out.println("Insira sua nota da prova 1: ");
nota1 = sc.nextInt();
}
System.out.println("Insira sua nota da prova 2: ");
nota2 = sc.nextInt();
if (nota2 >= 0 && nota2 <= 10) {
nota2 = nota2;
} else {
System.out.println("Insira um valor entre 0 e 10");
System.out.println("Insira sua nota da prova 2: ");
nota2 =sc.nextInt();
}
System.out.println("Insira sua nota da prova 3: ");
nota3 = sc.nextInt();
if (nota3 >= 0 && nota3 <= 10) {
nota3 = nota3;
} else {
System.out.println("Insira um valor entre 0 e 10");
System.out.println("Insira sua nota da prova 3: ");
nota3 =sc.nextInt();
}
System.out.println("Insira sua nota da prova 4: ");
nota4 = sc.nextInt();
if (nota4 >= 0 && nota4 <= 10) {
nota4 = nota4;
} else {
System.out.println("Insira um valor entre 0 e 10");
System.out.println("Insira sua nota da prova 4: ");
nota4 =sc.nextInt();
}
double soma = nota1 + nota2 + nota3 + nota4;
double divisao = soma/4;
if (divisao <= 4.99) {
System.out.println("Sua m\u00e9dia \u00e9: " + divisao);
System.out.println("Voc\u00ea foi reprovado");
} else {
System.out.println("Sua m\u00e9dia \u00e9: " + divisao);
System.out.println("Voc\u00ea foi aprovado");
}
}
}
Alguém tem ideia do por que isso acontece?