Array de Strings nao funciona

6 respostas
E

Não sei onde estou errando, por favor, me ajudem!!!
O erro eh o seguinte:

O nome do primeiro funcionário, le normalmente, mas a partir do segundo, fica assim:

digite nome
joao
digite horas
123
digite salario-Hora
12,9
digite nome//pula o nome
digite horas
2
digite salario-Hora
1

Essa eh minha classe empregado:

public class Empregado

{

private String nome;

private int horas;

private double salarioHora;

private static double percentualHoraExtra = 50/100;
public Empregado()
{
	nome = " ";
	horas = 0;
	salarioHora = 0.00;
}

public Empregado(String nome, int horas, double salarioHora)
{
	this.nome = nome;
	this.horas = horas;
	this.salarioHora = salarioHora;
}

public String getNome()
{
	return this.nome;
}

public void Setnome(String nome)
{
	this.nome = nome;
}

public int getHoras()
{
	return this.horas;
}

public void SetHoras(int horas)
{
	if(horas > 0)
	{
		this.horas = horas;
	}
	else
	{
		this.horas = 0;
		horas = 0;
	}
}

public double getSalarioHora()
{
	return this.salarioHora;
}

public void setSalarioHora(double salarioHora)
{
	if(salarioHora > 0)
	{
		this.salarioHora = salarioHora;
	}
	else
	{
		this.salarioHora = 0.00;
		salarioHora = 0.00;
	}
}

public double getSalario()
{
	double salario = 0;
	int hour = 0;
	if(this.horas>=40)
	{
		hour = getHoras()-40;
		salario = hour * ((this.salarioHora)+ (this.salarioHora * percentualHoraExtra)) + (getHoras()-hour)*salarioHora;
	}
	else
	{
		salario = this.horas*salarioHora;
	}
	return salario;
}
   
public String toString()
{   
    return String.format("\nNome:"+ this.nome +"\nHoras: "+ this.horas +"\nSalarioHora: "+ this.salarioHora +"\nSalario: "+ getSalario());   
}

}

Essa e minha aplicação:

import java.util.*;

public class AplicaEmpregado {

public static void main(String[] args) 
{   
	Scanner input = new Scanner(System.in);
	
	Empregado e[] = new Empregado[2];
	String nome;
	int horas;
	double slarioHora;
	
	for(int i=0; i<=1; i++)
	{
		System.out.println("digite nome");
		System.out.flush();
	    nome = input.nextLine();
	   
	    
        
        System.out.println("digite horas");
    	System.out.flush();
	    horas = input.nextInt();
        
        System.out.println("digite salario-Hora");
        System.out.flush();
        slarioHora = input.nextDouble();
        
	
		e[i] = new Empregado(nome, horas, slarioHora);
	}
	
    for(int i=0; i<=1; i++)
	{
    	System.out.print(e[i]);
	}              
}

}

6 Respostas

berg.pb

td bom Elizabeth??

olha o erro:

for(int i=0; i<=1; i++)

vc esta criando um laço que começa em 0 e vai até menor ou igual a 1; ou seja, começa em 0 até 1.

ericsobral

Só pra lembrar… Formate o post segundo as recomendações em:

http://www.guj.com.br/posts/list/50115.java

E

Foi mal! mas valeu a dica, vou tentar rever meu erro!

ivandasilva

Elizabete, acredito que o erro não está no looping e sim no método nextLine(), troque-o por next(), acredito que não haverá problemas. :lol:

OBS: O looping esta correto, o Array que você declarou contém apenas duas posições apenas e[0] e e[1].

Até +
Ivan

E

Oi pessoal!! consegui resolver, era soh colocar input.nextLine() no final de todos os dados;
mas dah p fazer tbem se for somente next() para receber Strings, por enquanto e soh!!! valeu gente

C

O nextLine pega o enter como valor :wink:

Criado 13 de setembro de 2008
Ultima resposta 15 de set. de 2008
Respostas 6
Participantes 5