Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Escopo de variáveis

Olá,

Fiz o exercício proposto de uma forma diferente para entender melhor como funciona a questão sobre escopo de variáveis.

No meu código, declarei a variável aliquota junto com todas as variáveis, mas o Eclipse está emitindo uma nota dizendo que ela não foi inicializada. Como faço para essa variável funcionar, da forma como eu pretendo usá-la?

Sou iniciante. Fiquem a vontade para dar sugestões de boas práticas e dicas do que devo fazer em outras partes do código.

Abs

public class exercicio {

    public static void main(String[] args) {

        //Declarando a variável
        double salario = 3300.0;
        double aliquota;
        double salarioLiquido;

        //ifs
        //Construção dos verificadores
        if(salario >= 1900.0 && salario <= 2800.0) {aliquota = 0.075;}
        if(salario >  2800.0 && salario <= 3751.0) {aliquota = 0.150;}
        if(salario >  3751.0 && salario <= 4664.0) {aliquota = 0.225;}

        //Cálculo do salário
        salarioLiquido = (1-aliquota)*salario;

        //Gerando o resultado
        System.out.println("Salário a receber: "+ salarioLiquido);
    }
}
4 respostas

Como alíquota é uma variável local, ela precisa ser inicializada com um valor.

Você pode fazer assim: double aliquota = 0;

 salarioLiquido = (1-aliquota)*salario;

O problema acontece porque você esta tentando utilizar uma variável sem valor numa conta.

Eu preciso atribuir um valor para aliquota, mesmo ela tendo uma atribuição dentro dos if? Por que?

E por que o mesmo não acontece com a variável salarioLiquido?

solução!

A parte do "if" não esta no código que você enviou. Mas pense, qual o valor da aliquota quando a condição do seu "if" não é satisfeita? A resposta é: ela não possui nenhum valor atribuído.

salarioLiquido sempre terá valor sendo atribuído a ele, pois ele não depende de nenhuma condição para isto.