public class media10alunos {
public static void main(String[] args) {
Doublenota1;Doublenota2;Doublenota3;Doubleresultado;StringnomeAluno;intcontador=0;Scanneriso=newScanner(System.in);while(contador<10){System.out.println("digite o seu nome:");nomeAluno=iso.nextLine();System.out.println("digite a primeira nota:");nota1=iso.nextDouble();System.out.println("digite a segunda nota:");nota2=iso.nextDouble();System.out.println("digite a terceira nota:");nota3=iso.nextDouble();resultado=nota1+nota2+nota3;System.out.println(nomeAluno+" sua média é "+resultado/3);contador=contador+1;}}
}
voçe digita somente a primeira vez o nome, e depois a frase digite nome sai junto com a proxima mensagem, que recebe somente a nota e não mais o nome que é pra ser, porque isso aconteçe, helpeeeee…
cara, não ficou claro a sua dúvida. Você gostaria que a mensagem de identificação (nome) seja exibida somente uma vez?
Se for isso, retire de dentro do looping a mensagem de digitar o nome e capturá-lo:
System.out.println("digite o seu nome:");nomeAluno=iso.nextLine();while(contador<10){System.out.println("digiteaprimeiranota:");nota1 = iso.nextDouble();System.out.println("digiteasegundanota:");nota2 = iso.nextDouble();System.out.println("digiteaterceiranota:");nota3 = iso.nextDouble();resultado = nota1 + nota2 + nota3;System.out.println(nomeAluno+"suamédiaé"+resultado/3);contador=contador+1;}
dhsouza
Acho que o erro que ele diz é que depois da primeira leitura das 3 notas o programa pula a parte de digitar o nome indo direto para as notas;
jMaT
no caso , o loop estava pulando o nome a partir da 2 vez e ja lendo o valor da nota .
publicclassMedia10alunos{publicstaticvoidmain(String[]args){Doublenota1;Doublenota2;Doublenota3;Doubleresultado;StringnomeAluno;intcontador=0;Scanneriso=newScanner(System.in);Scannernome=newScanner(System.in);while(contador<10){System.out.println("digite o seu nome:");nomeAluno=nome.nextLine();System.out.println("digite a primeira nota:");nota1=iso.nextDouble();System.out.println("digite a segunda nota:");nota2=iso.nextDouble();System.out.println("digite a terceira nota:");nota3=iso.nextDouble();resultado=nota1+nota2+nota3;System.out.println(nomeAluno+" sua média é "+resultado/3);contador=contador+1;}}}
celso.martins
Observações:
[list]Pelas convenções da linguagem Java, todas as palavras que compõe os nomes das classes começam com letras maiúsculas, assim: Media10Alunos;[/list]
[list]Utilize as tags code quando for postar codigo, facilita muito o entendimento[/list]
[list]Pense em titulos mais claros. Nesse seu caso seria algo assim: "Por que dá erro durante o input no Scanner", ou algo assim[/list]
Dei uma modificada no seu codigo para não engessar tanto o usuário, mas o pulo do gato é a recriação do Scanner e o reset no fim do while. Acredito que exista outra forma mais simples de resolver esse problema, mas foi o que consegui pensar no momento. Também tenho conhecimentos parcos da classe Scanner, mas está aí:
Abraços
importjava.util.ArrayList;importjava.util.List;importjava.util.Scanner;publicclassMedia10Alunos{publicstaticvoidmain(String[]args){List<Double>notas=newArrayList<Double>();StringnomeAluno="";Doublenota=0.0;while((!nomeAluno.equals("sair"))){Scanneriso=newScanner(System.in);System.out.println("Digite seu nome, ou 'sair' para terminar: ");nomeAluno=iso.nextLine();while(nota!=-1){System.out.println("Digite a sua nota ou '-1' para terminar: ");nota=iso.nextDouble();notas.add(nota);}if(!nomeAluno.equals("sair")){Doubleresultado=acharMedia(notas);System.out.println(nomeAluno+" sua média é "+resultado);}iso.reset();}}privatestaticDoubleacharMedia(List<Double>notas){Doublesomatorio=0.0;for(Doublenota:notas){somatorio+=nota;}returnsomatorio/notas.size();}}
J
javasouza
javasouza:
import java.util.Scanner;
public class media10alunos {
public static void main(String[] args) {
Doublenota1;Doublenota2;Doublenota3;Doubleresultado;StringnomeAluno;intcontador=0;Scanneriso=newScanner(System.in);while(contador<10){System.out.println("digite o seu nome:");nomeAluno=iso.nextLine();System.out.println("digite a primeira nota:");nota1=iso.nextDouble();System.out.println("digite a segunda nota:");nota2=iso.nextDouble();System.out.println("digite a terceira nota:");nota3=iso.nextDouble();resultado=nota1+nota2+nota3;System.out.println(nomeAluno+" sua média é "+resultado/3);contador=contador+1;}}
}
voçe digita somente a primeira vez o nome, e depois a frase digite nome sai junto com a proxima mensagem, que recebe somente a nota e não mais o nome que é pra ser, porque isso aconteçe, helpeeeee…
o caso é q só grava o nome uma vez, e depois a frase q pede o nome ela apareçe junto com a proxima frase"digite a primeira nota"
drigo.angelo
Troque
por
iso.next();
J
javasouza
OBRIGADÃO GALERA… VALEU E ESPERO PODER UM DIA AJUDALOS TAMBÉM…
drigo.angelo
edita seu primeiro post e coloca [resolvido] no titulo blz