publicclassfundamento{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);floatnumero;System.out.println("Digite um numero: ");numero=sc.nextFloat();System.out.println(" -> "+numero);}}
Esqueceste de fechar as chaves tanto da classe quanto do metodo. E tente declarar classes como Streams, Buffers, ArrayList e etc tudo antes de inputs.
R
rmendes083 likes
Uma dica para o futuro, tente entender o que diz as mensagens de erro, no caso do Java, elas são bem claras, veja:
java.util.InputMismatchException
quer dizer que o tipo de dado que o programa espera ler não é o mesmo tipo de dado que foi digitado pelo usuário. No seu caso, como você está esperando um float, é muito comum ocorrer erro de formatação por conta de configuração regional. Se você está digitando número decimal com vírgula, por exemplo, 10,25, tente trocar por 10.25 e vice-versa.
J
JoCoMo
Obrigado pela ajuda. Coloquei esse código, mas continua dando o mesmo
erro quando coloco um número com ponto .
J
JoCoMo
Obrigado pela dica. Digitei o número com ponto e depois com virgula.
Mas continua dando erro. : /
R
Solucao aceita
raphaeloneves3 likes
Segue a solução:
floatnumero;System.out.println("Digite um numero: ");Scannersc=newScanner(System.in);numero=Float.parseFloat(sc.nextLine());System.out.println(" -> "+numero);
Vejo muita gente aqui no fórum com problemas ao utilizar a classe Scanner. Minha dica pra usar essa abençoada é sempre pegar o valor da linha com o nextLine() (retorna uma String) e converter o valor pro tipo desejado. Quando se usa next(), nextFloat(), etc, o último caractere (\n) da linha dá problema. Isso justifica a exceção java.util.InputMismatchException, pois o esperado era um número 888.8 e veio um 888.8\n.
Se vc usa o nextLine() pra pegar o valor, esse \n é devidamente “tratado”. A solução que sugeri foi pegar o valor como uma string “tratada” e fazer um parse dela pro tipo Float.
publicclassfundamento{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);floatnumero;System.out.println("Digite um numero: ");numero=Float.parse(sc.nextLine());System.out.println(" -> "+numero);}}
C
CamilaDias
Boa noite!
Eu também sou iniciante em Java. Estou começando a praticar fazendo exercícios. Eu fiz dezoito exercícios e estou voltando a fazer novamente os exercícios aplicando a segunda versão, ou seja, de forma diferente da primeira versão.
Olhando o código embaixo. Eu tenho uma dúvida:
1 - Eu estou querendo que o usuário possa digitar a nota com ponto. Exemplo: 8.5. No meu código, ele funciona só com vírgula (8,5). Na saída só aparece o número com ponto. Exemplo: 8.78032
System.out.printf("Informe a nota do primeiro bimestre.");doublebimestral1=sc.nextDouble();DecimalFormatb1=newDecimalFormat("#.##");b1.format(bimestral1);System.out.printf("Informe a nota do segundo bimestre.");doublebimestral2=sc.nextDouble();DecimalFormatb2=newDecimalFormat("#.##");b2.format(bimestral2);System.out.printf("Informe a nota do terceiro bimestre.");doublebimestral3=sc.nextDouble();DecimalFormatb3=newDecimalFormat("#.##");b3.format(bimestral3);System.out.printf("Informe a nota do quarto bimestre.");doublebimestral4=sc.nextDouble();DecimalFormatb4=newDecimalFormat("#.##.");b4.format(bimestral4);intpeso1=1;intpeso2=2;intpeso3=3;intpeso4=4;doublebimestral=(bimestral1*peso1)+(bimestral2*peso2)+(bimestral3*peso3)+(bimestral4*peso4);doubleanual=bimestral/10;System.out.println("A média anual do aluno é: "+anual);}