[erro] Codigo simples!

5 respostas
blackfalcon

Ola pessoal, estava conversando com um amigo e ele me ensinou varias formas de se conseguir obter o resultado... porem, eu queria saber porque o programa esta dando um erro. O erro é do tipo nao-fatal, ou seja, so executando pra ver rsrs

import java.util.Scanner;

class nomes {
  public static void main ( String args[] ){
    Scanner input = new Scanner ( System.in );
    String nome[] = new String[10];
	int idade[] = new int[10];
	for ( int i = 0; i < 10; i++){
	  System.out.print("Escreva o seu nome: ");
	  nome[i] = input.nextLine();
	  System.out.print("Escreva sua idade: ");
	  idade[i] = input.nextInt();
	}
	for ( int i = 0; i < 10; i++) {
	  System.out.println("Nome: " + nome[i]);
	  System.out.println("Idade: " + idade[i]);
	}
  }
}

Aguardo as respostas :)

Abraços

5 Respostas

Roger75

Você deve instanciar um novo input a cada passo do for.

import java.util.Scanner;  
class nomes {  
      public static void main ( String args[] ){  
        
	     Scanner input = null;  
             String nome[] = new String[10];  
             int idade[] = new int[10];  
             for ( int i = 0; i < 10; i++){  
	           input = new Scanner ( System.in ); 
                   System.out.print("Escreva o seu nome: ");  
                   nome[i] = input.nextLine();  	
                   System.out.print("Escreva sua idade: ");  
                   idade[i] = input.nextInt();  
       	      }  
              for ( int i = 0; i < 10; i++) {  
                  System.out.println("Nome: " + nome[i]);  
                  System.out.println("Idade: " + idade[i]);  
              }  
     } 
     
}
blackfalcon
import java.util.Scanner;    
class nomes1 {    
      public static void main ( String args[] ){   
             String nome[] = new String[10];    
             int idade[] = new int[10];    
             for ( int i = 0; i < 10; i++){    
                   Scanner input = new Scanner ( System.in );   
                   System.out.print("Escreva o seu nome: ");    
                   nome[i] = input.nextLine();        
                   System.out.print("Escreva sua idade: ");    
                   idade[i] = input.nextInt();    
              }    
              for ( int i = 0; i < 10; i++) {    
                  System.out.println("Nome: " + nome[i]);    
                  System.out.println("Idade: " + idade[i]);    
              }    
     }   
       
}

Saquei, é so instanciar a classe dentro do for.. Mas porque tem que ser dentro do for? Alguem pode explicar?

Abraços

Alkamavo

pk para cada iteraçaõ do i é criado um novo objecto scanner k recebe dados diferentes do anterior…
Se estiveres a usar o eclipse…corra no debug para analisares o comportamento interno de seu programinha…

valeu

blackfalcon

Alkamavo:
pk para cada iteraçaõ do i é criado um novo objecto scanner k recebe dados diferentes do anterior…
Se estiveres a usar o eclipse…corra no debug para analisares o comportamento interno de seu programinha…

valeu

Entendi agora cara… valeu pela ajuda.

Abraços

H

blackfalcon, quando for aprender uma nova linguagem procure dar uma olhada na sua “Code Convention”. Escrever nomes de classes com a primeira letra em minúsculo em Java não é nada convencional.

http://java.sun.com/docs/codeconv/

Isto foi só uma dica.

Criado 27 de junho de 2008
Ultima resposta 28 de jun. de 2008
Respostas 5
Participantes 4