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

Desafio IR

Olá a todos, tudo bem?

Fiquei com algumas dúvidas neste exercício de alíquita com os ifs, mas boa parte solucionei vendo os tópicos do forum.. Mas peço que avaliem meu código por favor!

Eu não consegui "juntar" numa mesma linha estes dois println abaixo: System.out.println("O imposto a ser pago é de R$" + (salario * aliquota)); System.out.println("E a dedução é de R$" + deducao);

(e eu também não consigo deixar o códifo inteiro dentro deste bloco.. porque? rs)

public class TesteIr {

public static void main(String[] args) {

    double salario = 3300.0;
    double aliquota = 00.00;
    double deducao = 00.00;
    System.out.println("Seu salário é " + salario);

    if (salario >= 1903.99 && salario <= 2826.65) {
        aliquota = 0.075;
        deducao = 142.00;
        System.out.println("O imposto a ser pago é de R$" + (salario * aliquota));
        System.out.println("E a dedução é de R$" + deducao);
    } else {
        if (salario >= 2800.01 && salario <= 3751.00) {
            aliquota = 0.15;
            deducao = 350.00;
            System.out.println("O imposto a ser pago é de R$" + (salario * aliquota));
            System.out.println("E a dedução é de R$" + deducao);
        } else {
            if (salario >= 3751.01 && salario <= 4664.00) {
                aliquota = 0.225;
                deducao = 636.00;
                System.out.println("O imposto a ser pago é de R$" + (salario * aliquota));
                System.out.println("E a dedução é de R$" + deducao);

            }
        }
    }
}

}

4 respostas

Olá Keila, para ter esta mensagem na mesma linha basta seguir a ideia de usar o operador "+", podendo até quebrar o código, como fiz no exemplo abaixo. Eu alterei em todos blocos "If", sendo assim, para qualquer valor que seja o atributo "salario", teremos um retorno neste formato:

"O imposto a ser pago é de R$495.0 E a dedução é de R$350.0"

No exemplo, deixei o trecho de código neste formato:

System.out.println("O imposto a ser pago é de R$" + (salario * aliquota)) + 
                        " E a dedução é de R$" + deducao);

Em meu teste, ficou desta forma:

public class Teste {
    public static void main(String[] args) {

        double salario = 3300.0;
        double aliquota = 00.00;
        double deducao = 00.00;
        System.out.println("Seu salário é " + salario);

        if (salario >= 1903.99 && salario <= 2826.65) {
            aliquota = 0.075;
            deducao = 142.00;
            System.out.println("O imposto a ser pago é de R$" + (salario * aliquota)) + 
                        " E a dedução é de R$" + deducao);
        } else {
            if (salario >= 2800.01 && salario <= 3751.00) {
                aliquota = 0.15;
                deducao = 350.00;
                System.out.println("O imposto a ser pago é de R$" + (salario * aliquota) + 
                        " E a dedução é de R$" + deducao);
            } else {
                if (salario >= 3751.01 && salario <= 4664.00) {
                    aliquota = 0.225;
                    deducao = 636.00;
                    System.out.println("O imposto a ser pago é de R$" + (salario * aliquota)) + 
                        " E a dedução é de R$" + deducao);

                }
            }
        }
    }
}

Tendo este resultado:

Seu salário é 3300.0
O imposto a ser pago é de R$495.0 E a dedução é de R$350.0

Eu apenas não entendi a segunda dúvida, sobre deixar o código dentro do bloco.

solução!

Olá Keila! tudo bem?

Acho que a explicação do Gustavo foi excelente!

Vou apenas deixar aqui mais uma possibilidade que você pode utilizar para que os resultados sejam impressos em uma mesma linha, como você mencionou.

Poderíamos também fazer dessa forma:↓

public class Testando {

    public static void main(String[] args) {

        double salario = 3300.0;
        double aliquota = 00.00;
        double deducao = 00.00;
        System.out.println("Seu salário é " + salario);

        if (salario >= 1903.99 && salario <= 2826.65) {
            aliquota = 0.075;
            deducao = 142.00;
            System.out.print("O imposto a ser pago é de R$" + (salario * aliquota));
            System.out.println(" e a dedução é de R$" + deducao);
        } else {
            if (salario >= 2800.01 && salario <= 3751.00) {
                aliquota = 0.15;
                deducao = 350.00;
                System.out.print("O imposto a ser pago é de R$" + (salario * aliquota));
                System.out.println(" e a dedução é de R$" + deducao);
            } else {
                if (salario >= 3751.01 && salario <= 4664.00) {
                    aliquota = 0.225;
                    deducao = 636.00;
                    System.out.print("O imposto a ser pago é de R$" + (salario * aliquota));
                    System.out.println(" e a dedução é de R$" + deducao);

                }
            }
        }
    }
}

Repare que a única mudança que fiz foi mudar o método que utilizamos para saída. O System.out.print faz a mesma função do System.out.println, com a diferença de que ele não pula uma linha ao imprimir o que desejamos.

Dessa forma que está acima, temos o seguinte sendo impresso:

Seu salário é 3300.0
O imposto a ser pago é de R$495.0 e a dedução é de R$350.0

Particularmente eu ainda prefiro a maneira que o Gustavo utilizou! Mas é legal sabermos que existem outras formas!

Além disso, respondendo a segunda dúvida... creio que você deseja entender como fazemos para postar o código aqui no fórum de uma maneira que ele fique todo organizado em um único bloco, da forma que fiz acima, correto?

Então... para você exibir seu código dessa forma, basta utilizar o sinal de crase repetido três vezes seguidas, e então fechar com mais três sinais de crase repetidos 3 vezes novamente... desse jeito aqui: ↓

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Dessa forma você sempre estará compartilhando conosco seus códigos de forma que todos possamos acessar eles facilmente, o que acha? Legal né?

Se a explicação não estiver clara, ou se precisar de mais ajuda, é só falar! 😉

Gustavo, muito obrigada pela ajuda!

Era realmente o "+" que estava faltando, mas quando eu corrigia o erro persistia por conta de um parênteses a mais! Ai eu entendi que como eu pulava a linha não era necessário dois parênteses após a aliquota.

Ficou assim:

System.out.println("O imposto a ser pago é de R$" + (salario * aliquota) + 
            " E a dedução é de R$" + deducao);

Espero que meu pensamento esteja correto!

E Guilherme, também agradeço muito a sua ajuda!

Também achei super interessante lembrar que também posso usar o print nesta situação, mas concordo que o println é mais convidativo! :)

E já consegui postar uma parte do código utilizando os sinais de crases, obrigada!!