While

3 respostas
L

Tenho necessidade de calcular para cada hora trabalhada de um funcionario um acressimo de 50% em seu salario base.
While deve acumular o valor de horas extras na variavel vlExtra, mas pelo jeito não esta rolando, tenho algum erro de logica, alguem pode me ajudar?

import javax.swing.JOptionPane;

public class Salario{

public static void main ( String args[] )
{
	
	
	// Variáveis do Aplicativo
	
	String nmFunc;                  // Nome do Funcionário
	String codCargo1;               // Codigo do Cargo
	String horasTrab1;              // Horas Trabalhadas
	
	int codCargo;                   // Codigo do Cargo
	int horasTrab;                  // Horas Trabalhadas
	int horaExtra;                  // Hora Extra
	int salario;                    // Valor Salario 
	int contTrab;                   // Contar Horas Trabalhadas 
	
	double slBruto;                 // Salario Bruto
	double vlExtra;                 // Valor da Hora Extra
	  
	
	// Inicialização de Variáveis
	
	horasTrab  =0;
	horaExtra  =0;
	vlExtra    =0;
	contTrab   =0;
	slBruto    =0;
	
	
	
	
	// Codigo do Cargo 
	codCargo1 = JOptionPane.showInputDialog("Informe o Codigo do Cargo");
	
	codCargo  = Integer.parseInt(codCargo1);
	
	
	
	// Bloco de Validação de Cargo
	if( codCargo == 10 )
	{
		
		salario = 100;
		
		nmFunc      = JOptionPane.showInputDialog("Informe o Nome do Funcionário");
		
		horasTrab1  = JOptionPane.showInputDialog("Informe Horas Trabalhadas Semana");
			
		horasTrab   = Integer.parseInt(horasTrab1);
			 
					
		if( horasTrab > 40 )
		{
			
			horaExtra = horasTrab - 40;
			
			
			while(contTrab < horaExtra)
			{
				
				vlExtra   = salario * 0.5;
			    
			    
				contTrab +=1;
			
			} // End WHILE
			
		    slBruto   = salario + vlExtra; 
		    								
		} // End IF				
		else
		{
			
			slBruto = salario;
				
				
		} // End ELSE
			
			
			System.out.println("Funcionário: " + nmFunc + "\n" + "Salario Bruto: " + 
			slBruto + "\n" + "HorasTrabalhadas: " + horasTrab + "\n" + "Horas Extra: " + horaExtra);
				
	} // End IF
	
	



} // Fim do Metodo Main

} // Fim da

3 Respostas

ViniGodoy

Pode por o seu código entre as tags code?

Fica difícil ver o que você escreveu sem formatação.

Se não sabe fazer isso, leia esse post aqui:
http://www.guj.com.br/posts/list/50115.java

peczenyj

Ok. vc pode fazer uma ou infinitas vezes esta instrução:

vlExtra = salario * 0.5;

que o resultado será o mesmo. vc não está acumulado nada, vc está atribuindo.

Isso acumula:
vlExtra = vlExtra + salario * 0.5;

Porém acho estranho esse calculo.

dev-ailson

Boa noite a todos.

leandrohendrix, deixa teu email. vou verificar e te retorno.

t+

Criado 30 de janeiro de 2008
Ultima resposta 30 de jan. de 2008
Respostas 3
Participantes 4