Bom dia.
Por que o compilador exige que eu inicialize a variável antes de usar?
import javax.swing.JOptionPane;
import java.text.NumberFormat;
public class C0814Exercicio5{
public static void main (String[]args) {
NumberFormat nf = NumberFormat.getCurrencyInstance(); String nome; float salario = 0; byte i = 1; byte aliquota_inss = 0; float inss = 0; float aliquota_ir = 0; float ir = 0; float salario_liquido = 0; String relatorio = ""; float total_salario = 0; float total_inss = 0; float total_ir = 0; float total_salario_liquido = 0; while (true) { nome = JOptionPane.showInputDialog(null,"Informe o nome do funcionário: " + i); //Tratamento do nome if (nome == null) { break; } if(nome.length() <2 || nome.length()>30) { JOptionPane.showMessageDialog(null, "O nome deve conter de 2 a 30 caracteres","Erro",0); continue; } //Tratamento do salário while (true) { salario = Float.valueOf(JOptionPane.showInputDialog(null,"Informe o salário do funcionário: " + i));
if (salario < 465) { JOptionPane.showMessageDialog(null, "O salário deve ser um valor igual ou superior a R$ 465"); continue; } //Tratamento da aliquota if (salario < 965.67) { aliquota_inss = 8; } if (salario < 1609.45) { aliquota_inss = 9; } if (salario < 3218.90) { aliquota_inss = 11; } inss = (salario * aliquota_inss)/100; //Tratamento do IR if (salario < 1434) { aliquota_ir = 0f; } if (salario < 2150) { aliquota_ir = 7.5f; } if (salario < 2886) { aliquota_ir = 15f; } if (salario < 3582) { aliquota_ir = 22.5f; }else { aliquota_ir = 27.5f; } ir = (salario * aliquota_ir)/100; if (inss < 354.08) { salario_liquido = salario - ir; }else { salario_liquido = salario - inss - ir; } total_salario += salario; total_inss += inss; total_ir += ir; total_salario_liquido += salario_liquido; relatorio += i + ": " + nome + " - " + nf.format(salario) + " - " + nf.format(inss) + " - " + nf.format(ir) + " = " + nf.format(salario_liquido) + "\n"; break; } i++; continue; }//Primeiro while if (relatorio != null) { JOptionPane.showMessageDialog(null, "RELATÓRIO DA FOLHA DE PAGAMENTO: \n\n" + relatorio + "\n\n TOTAIS: " + i + " funcionários: " + nf.format(total_salario) + " - " + nf.format(total_inss) + " - " + nf.format(total_ir) + " - " + nf.format(total_salario_liquido)); } System.exit(0);
}
}