Boa noite a todos,
Estou a pouco tempo tentando aprender java e hoje passei o dia quebrando a cabeça com um código que estava tentando fazer, o programa deveria armazenar nomes de alunos, suas notas e depois mostrar suas medias, porém ao entrar no for dos nomes dos alunos ele ja pula para o segundo aluno e no nome do primeiro ele armazena um espaço em branco mesmo sem pressionar a tecla enter(nextLine()), gostaria de uma ajuda para entender o porque dessa situação e consequentemente descobrir onde errei, desde já agradeço a todos… Segue o código:
[code]package Exercicios;
import java.util.Scanner;
//fazer programa media escolar compleo
public class Matrizes{
public static void main(String[] args){
Scanner entrada = new Scanner(System.in); //criando objeto scanner
int num_Alunos,num_Bimestres;
System.out.print("informe o numero de alunos: ");
num_Alunos = entrada.nextInt();
System.out.print("Informe o numero de bimestres: ");
num_Bimestres = entrada.nextInt();
String[] nome = new String[num_Alunos];
double[][] notas = new double[num_Alunos][num_Bimestres];
double[] media = new double[num_Alunos];
//Obtendo nome dos alunos:
for (int i=0;i<num_Alunos;i++){
System.out.print("Informe o nome do "+(i+1)+"º Aluno: ");
nome[i] = entrada.nextLine();
}
//Obtendo as notas dos alunos:
for (int i=0;i<num_Alunos;i++){
for(int j=0;j<num_Bimestres;j++){
System.out.print("Digite a "+(j+1)+"ª nota do aluno, "+nome[i]+":");
notas[i][j] = entrada.nextDouble();
}
}
//Calculando as medias:
for (int i=0;i<num_Alunos;i++){
for(int j=0;j<num_Bimestres;j++){
media[i] += notas[i][j];
}
media[i] /= num_Bimestres;
}
//Mostrar Situacao dos alunos:
for (int i=0;i<num_Alunos;i++){
if (media[i]>=7){
System.out.println("O aluno "+nome[i]+" Esta aprovado com"
+ " media:"+media[i]);
} else{
System.out.println("O aluno "+nome[i]+ "Esta reprovado com"
+ "media: "+media[i]);
}
}
}
[quote=ricardovdk]Boa noite a todos,
Estou a pouco tempo tentando aprender java e hoje passei o dia quebrando a cabeça com um código que estava tentando fazer, o programa deveria armazenar nomes de alunos, suas notas e depois mostrar suas medias, porém ao entrar no for dos nomes dos alunos ele ja pula para o segundo aluno e no nome do primeiro ele armazena um espaço em branco mesmo sem pressionar a tecla enter(nextLine()), gostaria de uma ajuda para entender o porque dessa situação e consequentemente descobrir onde errei, desde já agradeço a todos… Segue o código:
package Exercicios;
import java.util.Scanner;
//fazer programa media escolar compleo
public class Matrizes{
public static void main(String[] args){
Scanner entrada = new Scanner(System.in); //criando objeto scanner
int num_Alunos,num_Bimestres;
System.out.print("informe o numero de alunos: ");
num_Alunos = entrada.nextInt();
System.out.print("Informe o numero de bimestres: ");
num_Bimestres = entrada.nextInt();
String[] nome = new String[num_Alunos];
double[][] notas = new double[num_Alunos][num_Bimestres];
double[] media = new double[num_Alunos];
//Obtendo nome dos alunos:
for (int i=0;i<num_Alunos;i++){
System.out.print("Informe o nome do "+(i+1)+"º Aluno: ");
nome[i] = entrada.nextLine();
}
//Obtendo as notas dos alunos:
for (int i=0;i<num_Alunos;i++){
for(int j=0;j<num_Bimestres;j++){
System.out.print("Digite a "+(j+1)+"ª nota do aluno, "+nome[i]+":");
notas[i][j] = entrada.nextDouble();
}
}
//Calculando as medias:
for (int i=0;i<num_Alunos;i++){
for(int j=0;j<num_Bimestres;j++){
media[i] += notas[i][j];
}
media[i] /= num_Bimestres;
}
//Mostrar Situacao dos alunos:
for (int i=0;i<num_Alunos;i++){
if (media[i]>=7){
System.out.println("O aluno "+nome[i]+" Esta aprovado com"
+ " media:"+media[i]);
} else{
System.out.println("O aluno "+nome[i]+ "Esta reprovado com"
+ "media: "+media[i]);
}
}
}
}
[/quote]
no lugar de usar
nome[i] = entrada.nextLine();
usa
nome[i] = entrada.next();
pra pegar o nome
funcionou amigo muito obrigado e desculpa ter esquecido a formatação do texto, acabei fazendo nas pressas aqui, no caso desse código o System.out.println… é tido como quebra de linha, seria isso?