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

[Dúvida] [Projeto Pessoal] Calculadora de 13º Salário

Após concluir o curso inicial 'Explorando a linguagem C#' fiquei com vontade de tentar aplicar os conhecimentos recém-adquiridos para tentar fazer um projeto pessoal, que seria uma calculadora de 13º Salário. Até o momento em que o programa consiste em apresentar as duas parcelas do 13º em que a segunda parcela é o 13º menos a primeira parcela, tudo bem, mas então comecei a tentar implementar os demais descontos que a segunda parcela teria, como Imposto de Renda, INSS, Horas Extras etc.

O problema é que, depois que declaro o desconto do imposto de renda com as funções condicionais, a variável que criei para o imposto de renda já não existe mais fora delas. Assisti e reassisti a aula de escopo, mas ainda não encontro nela uma possível solução.

Agradeço previamente por qualquer resposta e peço desculpas se esse forum não for o melhor lugar para esse tipo de dúvida, como estou utilizando o computador da empresa em que trabalho no momento, não estou com acesso ao Discord.

    //Variável do salário atual
    Console.WriteLine("Por favor, insira o seu salário: ");

    double salarioAtual = double.Parse(Console.ReadLine());

    //Variável dos meses trabalhados
    Console.WriteLine("Por favor, insira o número de meses trabalhados no ano: ");

    int mesesTrabalhados = int.Parse(Console.ReadLine());

    //Variável do cálculo do 13º
    double decimoTerceiro = (salarioAtual / 12) * mesesTrabalhados;

    Console.WriteLine("O valor do 13º sem descontos é: " + decimoTerceiro);

    //Variável do Imposto de Renda
    double impostoRenda;

    if (salarioAtual <= 1.903)
    {
        impostoRenda = 0;
    }
    else if (salarioAtual >= 1.904 && salarioAtual <= 2.826)
    {
        impostoRenda = 142;
    }
    else if (salarioAtual >= 2.827 && salarioAtual <= 3.751)
    {
        impostoRenda = 354;
    }
    else if (salarioAtual >= 3.752 && salarioAtual <= 4.664)
    {
        impostoRenda = 636;
    }
    else if (salarioAtual >= 4.665)
    {
        impostoRenda = 869;
    }

    //Divisão das parcelas
    double primeiraParcela = decimoTerceiro / 2;
    double segundaParcela = decimoTerceiro - primeiraParcela - impostoRenda;

    Console.WriteLine("A primeira parcela será de: " + primeiraParcela);
    Console.WriteLine("A segunda parcela será de: " + segundaParcela);




}

}

4 respostas

Aparentemente, colocar um ; no final do else if (salarioAtual >= 4.665) fez com que o programa funcionasse, o que me deixou mais confuso, porque os outros não têm. O que eu estou deixando passar aqui?

solução!

Bom dia Daniel, tuco blz?

camarada seu código rodou aqui tranquilo, alias só precisei iniciar a váriavel double impostoRenda=0;, de resto foi tranquilo! Estou usando o MS Community 2022 e .NET 7 ( com a opção de intrução de alto nível habilitada!).

Abraços e bons estudos 😄


Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Olá, André.

Muito obrigado pela resposta. Realmente declarando a variável double impostoRenda = 0; fez funcionar aqui. Estou usando o .NET 6.

Então uma variável que vai receber um valor posteriormente nunca pode ficar vazia?

Além disso, se possível, poderia por favor me dar uma dica de como controlar a quantidade de casas decimais nos resultados para não acontecer coisas como essa?

Muito obrigado.

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

Daniel, beleza?

Usando a interpolação de strings você pode deixar assim:

Console.WriteLine($"A primeira parcela será de: {primeiraParcela::0.00}");
Console.WriteLine($"A segunda parcela será de: {segundaParcela::0.00}");

Espero que tenha ajudado e, qualquer coisa, estamos à disposição!

Abraços e bons estudos 😄


Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!