// erro no if, é exibido a mensagem de isento mesmo se a renda é maior que 22847,76.
import javax.swing.JOptionPane;
public class ex2se{
public static void main (String args[])
{
double rendimento, retencao, calculoir, calculoir1,calculoir2,calculoir3;
rendimento= Double.parseDouble(JOptionPane.showInputDialog("Informe o
rendimento:"));
retencao = Double.parseDouble(JOptionPane.showInputDialog("Informe a retenção;
zero se não houver:"));
if ( rendimento <= 22847.76) ;
{
JOptionPane.showMessageDialog(null," Você está isento de IR!");
}
if (( rendimento>=22847.77 )|( rendimento<=33919.80));
{
calculoir= ((rendimento*0.8*0.075)*(-1)+retencao+1713.58);
JOptionPane.showMessageDialog(null," Restituição de"+calculoir);
}
if ((rendimento>=33918.81)|(rendimento<=45012.60));
{
calculoir1= ((rendimento*0.8*0.15)*(-1)+retencao+4257.57);
JOptionPane.showMessageDialog(null," Restituição de"+calculoir1);
}
if ((rendimento>=45012.61)|(rendimento<=55976.16));
{
calculoir2=((rendimento*0.8*0.225)*(-1)+retencao+7633.51);
JOptionPane.showMessageDialog(null," Restituição de"+calculoir2);
}
if ((rendimento>=55976.16));
{
calculoir3=((rendimento*0.8*0.275)*(-1)+retencao+7633.51);
JOptionPane.showMessageDialog(null," Restituição de"+calculoir3);
}
}
}
Olá!
Formate seu código utilizando o comando </> no editor de texto do GUJ.
Os cálculos que ficaram truncados.
Quando você escreve um if
sem abrir e fechar chaves, ele considera somente a próxima instrução.
Olha como você escreveu seus if
s.
if (condição) ; // não abriu chaves então a próxima instrução é esse ponto e vírgula, que não faz nada
{ // aqui abriu um bloco de código que sempre é executado
JOptionPane.showAlgumaCoisa();
}
Deveria ser assim:
if (condição) {
// faz alguma coisa
}