Re:Armazenamento de Variaveis

6 respostas
Paulo_Faulstich

Dae Bill II não olhei muito mas pelo que parece o problema é no teu for tu ta fazendo ele menor do que o ano que você digitou, portanto não entrando no if onde você compara com o i = ano digitado.

Teste colocar o for assim:

for(int i = 2005; i <= ano; i++){

6 Respostas

M

O que exatamente você quer que o aplicativo faça ?
a variável salarioAtual estará zerada ao final do programa se o ano digitado for menor que 2005, pois não entrará em nenhum if, logo continuará com seu valor original.

Paulo_Faulstich

Dae Bill II testei a tual classe cara, realment era o for o teu problema coo eu havia falado antes.

Segue código funcionado.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.prego.testareflection;

import javax.swing.JOptionPane;

/**
 *
 * @author paulo
 */
public class Teste {
     public static void main(String[] args) {
             
        double salarioInicial = 0.0;  
        double salarioAumento1 = 0.0;  
        double salarioAumento2 = 0.0;  
        double salarioAtual = 0.0;  
         
        
        String controleRetornoN = JOptionPane.showInputDialog("Entre com o ano atual:\n - Sabendo que o salario inicial do funcionario em 2005 foi de R$1000.00\n\n");  
        Integer ano = Integer.parseInt(controleRetornoN); 
                   
        for(int i = 2005; i <= ano; i++){                         
            if(i == ano-3){  
                salarioInicial = 1000.0;  
            }  
                       
            if(i == ano-2){  
                salarioAumento1 = salarioInicial + 1.5;  
            }  
                         
            if(i == ano-1){  
                salarioAumento2 = salarioAumento1 + 1.5;  
            }  
                          
            if(i == ano){  
                salarioAtual = 1000.0 + (1.5*2.0);  
            }  
                                                  
        }     
                     
        JOptionPane.showMessageDialog(null,"Salario atual do funcionario em "+ano+" : "+salarioAtual);  
                                         
    }
}


Flw!
Paulo_Faulstich

Chegou a testar o fonte que te passei Bill?

Tem alguma coisa errada ainda?

Flw.

Filipe_Cruz

Ola pessoal

sou meio novo eim java... fiquei muito tempo sem progrmar na linguagem e toh voltando com uma duvida... se gue o cod...

int ano;
				double salarioInicial = 0.0;
				double salarioAumento1 = 0.0;
				double salarioAumento2 = 0.0;
				double salarioAtual = 0.0;
				
				controleRetornoN = ano = Integer.parseInt(JOptionPane.showInputDialog("Entre com o ano atual:\n"+
																   " - Sabendo que o salario inicial do funcionario em 2005 foi de R$1000.00\n\n"));
				
				for(int i = 2005; i < ano; i++){
					
					if(i == ano-3){
						salarioInicial = 1000.0;
					}
					
					if(i == ano-2){
						salarioAumento1 = salarioInicial + 1.5;
					}
					
					if(i == ano-1){
						salarioAumento2 = salarioAumento1 + 1.5;
					}
					 
					if(i == ano){
						salarioAtual = 1000.0 + (1.5*2.0);
					}
					
					
				}	
				
					
				
				
				JOptionPane.showMessageDialog(null,"Salario atual do funcionario em "+ano+" : "+salarioAtual);

Porque as variaveis ñ estão sendo acumuladas ? ao meu ver a lógica está correta... mas no fim a variavel salarioAtual está serada...

agadeço desde jah pela ajuda...

abraço...

Filipe_Cruz

mid_:
O que exatamente você quer que o aplicativo faça ?
a variável salarioAtual estará zerada ao final do programa se o ano digitado for menor que 2005, pois não entrará em nenhum if, logo continuará com seu valor original.

as variaveis anteriores dos ifs() de 2005 , 2006, 2007 servem de base de calculo para o if() 2008 mais as variaveis ñ estão acumulando os valores que deveriam…

sera um erro de logica… ?

desde de jah fico grato…

Abraço…

Filipe_Cruz
Paulo Faulstich:
Dae Bill II testei a tual classe cara, realment era o for o teu problema coo eu havia falado antes.

Segue código funcionado.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.prego.testareflection;

import javax.swing.JOptionPane;

/**
 *
 * @author paulo
 */
public class Teste {
     public static void main(String[] args) {
             
        double salarioInicial = 0.0;  
        double salarioAumento1 = 0.0;  
        double salarioAumento2 = 0.0;  
        double salarioAtual = 0.0;  
         
        
        String controleRetornoN = JOptionPane.showInputDialog(&quot;Entre com o ano atual:\n - Sabendo que o salario inicial do funcionario em 2005 foi de R$1000.00\n\n&quot;);  
        Integer ano = Integer.parseInt(controleRetornoN); 
                   
        for(int i = 2005; i &lt;= ano; i++){                         
            if(i == ano-3){  
                salarioInicial = 1000.0;  // SALARIO INICIAL = 1000.0
            }  
                       
            if(i == ano-2){  
                salarioAumento1 = salarioInicial + 1.5;  // SALARIO AUMENTO 1 = 1001.5
            }  
                         
            if(i == ano-1){  
                salarioAumento2 = salarioAumento1 + 1.5;  // SALARIO AUMENTO 2 = 1003.0
            }  
                          
            if(i == ano){  
                salarioAtual = 1000.0 + (1.5*2.0);  // SALARIO ATUAL = 1006.0       E     NÃO  1003.0    COMO EH MOSTRADO   NA SAIDA DO  JOPTIONPANE
            }  
                                                  
        }     
                     
        JOptionPane.showMessageDialog(null,&quot;Salario atual do funcionario em &quot;+ano+&quot; : &quot;+salarioAtual);  // 
                                         
    }
}


Flw!

Dando a empressão que as variaveis dos ifs() anteriores n~estão acumulando seus deidos valores para o calculo final...

desde jah fico grato...

Abraço...

Criado 23 de maio de 2008
Ultima resposta 25 de mai. de 2008
Respostas 6
Participantes 3