Problemas com a Repetição!

4 respostas
E

Bom amigos, tenho o seguinte codigo que: Deve ler a entrada de três nomes e idade e ao fim exibi-las. O problema é que a estrutura de repetição não esta executando corretamente.

import java.util.Scanner;


public class Cadastro {

	public static void main (String [] args)
	{
	String [] nome = new String [3];
	int [] idade = new int [3];
	Scanner input = new Scanner (System.in);

	for (int x = 0; x< nome.length; x++){

	System.out.print("Digite o nome :");
	nome [x] = input.nextLine();

	System.out.print("Digite a idade :");
	idade [x] = input.nextInt();
	}
	
	System.out.println (" ");
	for (int x = 0; x<nome.length; x++){
	System.out.println ("Nome :"+nome[x]+ " Idade :"+idade [x] );
	
	}
	}
	}

....

ele produz a seguinte saida :

Digite o nome :
Digite a idade :
Digite o nome : Digite a idade :
Digite o nome : Digite a idade :

Nome : Idade :
Nome : Idade :
Nome : Idade :

Gostaria de saber o que tem de errado? por que a partir da segunda repetição a solicitação de Nome e idade aparecce na mesma linha de codigo !

4 Respostas

M

nextLine pula linha automaticamente, nextInt não.

Ai é só adaptar :wink:

E

Não sabia disso, obg.
Vou ver o que consigo fazer .

E

Resolvido !
Por enquanto resolvi deixar a idade como sendo uma String !

import java.util.Scanner;


	public class Cadastro1 {

		public static void main (String [] args)
		{
		
		Scanner input = new Scanner (System.in);
		String [] nome = new String [3];
		String [] idade = new String [3];
		
		
		
		

		for (int x = 0; x< nome.length; x++){
		
		System.out.print("Digite o nome :");
		nome [x] = input.nextLine();

		System.out.print("Digite a idade :");
		idade [x] = input.nextLine();
		}
		System.out.println (" ");
		for (int x = 0; x<nome.length; x++){
		
		System.out.println ("Nome :"+nome[x]+ " Idade :"+idade[x] );
		
		
		}
		
		}
		}

Agora apresenta a saida desejada :
Digite o nome :pessoa1
Digite a idade :21
Digite o nome :pessoa2
Digite a idade :21
Digite o nome :pessoa3
Digite a idade :21

Nome : pessoa1 Idade :21
Nome : pessoa2 Idade :21
Nome : pessoa3 Idade :21

D

vc pode colocar assim:

System.out.print("Digite a idade :"); idade [x] = Integer.parseInt(input.nextLine());

considerando a idade ainda como int[]

abraços

Criado 23 de fevereiro de 2012
Ultima resposta 23 de fev. de 2012
Respostas 4
Participantes 3