Duvida no codigo java

4 respostas
A

Olá pessoal,

Estava analisando esse codigo e ao executar o programa, ele pede para entrar com nome, codigo e salario do 1º funcionario e quando entro com o nome do 2º funcionario está escrito o nome do 1º funcionario, e o mesmo acontece com o codigo e salario. Ao executar o programa aparece:

Exemplo:

Informe nome -->
joao
Informe codigo -->0
10
Informe salario -->0.0
200

nome -->joao
codigo–>10
salario–>200

Informe nome —>joao //nao entendi porque apareceu joao, se foi digitado carlos??
carlos
Informe codigo -->10 //apareceu esse 10, mas foi digitado 11?
11
Informe salario -->200.0 //apareceu 200.0, aqui foi digitado 500?
500

Porque esta aparecendo os dados do 1º funcionario?Como faço para quando for digitar os dados do 2º funcionario nao aparecer os dados do 1º funcionario?

import java.io.*;
import java.util.*;


class Funcionario
{
	
	String nome;
	int codigo;
	float salario;
	
	


   Funcionario()
   {
	
	nome="sem nome";
	codigo=0;
	salario=0;
   }

   void recebedados(String n,int c,float sal)
   {
	
	nome=n;
	codigo=c;
	salario=sal;
	
   }

    void mostra()
  {
	
	System.out.println("nome -->"  +nome);
	System.out.println("codigo -->"+codigo);
	System.out.println("salario -->"+salario);
	
  }
  
 
  
  
  
  public static void main(String[] arg)
  {
  	
  	String n="";
  	int c=0;
  	float sal=0;
  	
  	Funcionario a=new Funcionario();
  	Funcionario b=new Funcionario();
  	
  	 Scanner scan=new Scanner(System.in);
       
  	 System.out.println("Informe nome -->"+n);
  	 n=scan.next(); 
  	 System.out.println("Informe codigo -->"+c);
  	 c=scan.nextInt();
  	 System.out.println("Informe salario -->"+sal);
  	 sal=scan.nextFloat();
  	 
  	 a.recebedados(n,c,sal);
  	  a.mostra();
  	 
  	 
  	 System.out.println("Informe nome -->"+n);
  	 n=scan.next();
  	 System.out.println("Informe codigo -->"+c);
  	 c=scan.nextInt();
  	 System.out.println("Informe salario -->"+sal);
  	 sal=scan.nextFloat();
  	 
  	 b.recebedados(n,c,sal);
  	 b.mostra();
  	 a.mostra();
  	
  	  	 
  	  
  	
  	
  }

}

4 Respostas

Leandro_Carvalho

Quando vc faz uma coisa desse tipo:

System.out.println("Informe nome -->"+n);
  	 n=scan.next();

Você está primeiro mostrando o valor da variável “n” e depois solicitando que seja dado um novo valor a ela, sugiro algumas mudanças:

System.out.println("Informe nome -->");
  	 n=scan.next(); 
  	 System.out.println("Nome informado -->"+n);
A

Valeu Leandro!!
Eu nao percebi isso. Passou batido.

Leandro, tirando mais uma duvida.
Ao executar o programa tem como posiconar o cursor na frente da frase. Ex:

Quando executa o programa aparece:
informe nome --> tem como posicionar o cursor aqui ???
O cursor fica piscando aqui embaixo.

Obrigado.

L

Olá,

a solução mais simples para esse problema é usar o comando para impressão sem o ln,(o ln indica para o comando print que o mesmo deve imprimir e em seguida ir para próxima linha).
O código vai ficar dessa forma:

System.out.print("Informe nome -->"); n=scan.next();

A

Obrigado, lafaiete.
Vou fazer isso!

Criado 12 de setembro de 2007
Ultima resposta 13 de set. de 2007
Respostas 4
Participantes 3