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

Duvidas em relação ao IF

É possivel de alguma maneira usar uma variavel iniciada dentro de um IF fora dele Por exemplo

    double aliquota;
    double imposto;

    if(redimentoAnual <= 1200) {

        aliquota = 0;    
        imposto = redimentoAnual * aliquota / 100; 
        System.out.println("O imposto a ser paga é: " + imposto );

    }else if (redimentoAnual > 1200 && redimentoAnual <= 2300) {

        aliquota = 7.5;
        imposto = redimentoAnual * aliquota / 100;
        System.out.println("O imposto a ser paga é: " + imposto );

Neste caso é possivel usar a variavel "aliquota" que esta sendo inicializada dentro if fora dele , para ao invez de ficar repetindo a mesma linha de codigo varias vezes , eu usar apenas uma vez no finalAlgo mais ou menos parecido com isso

if(redimentoAnual <= 1200) {

        aliquota = 0;    

    }else if (redimentoAnual > 1200 && redimentoAnual <= 2300) {

        aliquota = 7.5;
    }
        imposto = redimentoAnual * aliquota / 100;
        System.out.println("O imposto a ser paga é: " + imposto );
2 respostas
solução!

No seu exemplo não é possível pois sua estrutura condicional não contempla um cenário em que as condições aplicadas não são atendidas - quando o valor de rendimentoAtual é maior que 2300, por exemplo. Isso implica que o programa possa tentar acessar a variável não inicializada (aliquota), gerando o erro de compilação. Para isso, você deve ter uma condicional ELSE, para que você possa utilizá-la fora da estrutura (ELSE-IF não resolve) ou então se inicializa a variável aliquota antes. Segue uma possível solução:

if (redimentoAnual <= 1200) {
            aliquota = 0;
        } else if (redimentoAnual > 1200 && redimentoAnual <= 2300) {
            aliquota = 7.5;
        } else {
            aliquota = 15;
        }
        imposto = redimentoAnual * aliquota / 100;
        System.out.println("O imposto a ser paga é: " + imposto);

Observação:

1- No primeiro trecho de código falta uma chave de fechamento na instrução ELSE-IF.

Oi Tassio, tudo bem?

Como resolveu o seu problema, estou fechando o tópico, ok?

Qualquer coisa não hesite em abrir outro :)