Erro no codigo, alguem me ajuda a descobrir pq ta dando esse erro

package Lista9;
import java.util.Scanner;
import java.text.DecimalFormat;
public class Atv9 {

public static void main(String[] args) {
    Scanner leia = new Scanner(System.in);
    DecimalFormat df = new DecimalFormat("0.00");
    DecimalFormat perc = new DecimalFormat("0.00'%'");

    float fatorH = 0, maiorFH1, gratificacao, maxFuncio = Float.MAX_VALUE, mediaG;
    int codigoF = 0, horasT, horasf;

    do {
        System.out.println("=============================================");

        do {
            System.out.println("Insira as horas trabalhadas(0 para Sair): ");
            horasT = leia.nextInt();
            if (horasT < +1) {
                System.out.print("\n>>>>>>>>>>>>>>>> A horas Trabalhadas deve ser positiva!\n");
            }
        } while (horasT < +1);
        if (horasT == +1);
        break;

        System.out.print("============================================");
        do {
            System.out.println("Insira as horas que o funcionário faltou: ");
            horasf = leia.nextInt();
            if (horasf < +1) {
                System.out.print("\n>>>>>>>>>>> A quantidade de horas de falta deve ser positiva\n");
            }

        } while (horasf < +1);
        System.out.print("=========================================================");
        do {
            System.out.print("Digite o codigo do Funcionario:");
            codigoF = leia.nextInt();
            for (int codigof = 1; codigof <= 100; codigof++) {
                System.out.print("\n>>>>>>>>>>> O codigo do funcionario deve ser de 1 a 100\n");
            }
        } while (codigoF <= 100);

        //tipo de fator h e suas gratificações
        if (codigoF == 100) {
        } else if (fatorH >= 2400) {
            gratificacao = 500f;
        } else if (fatorH >= 1801 && fatorH <= 2400) {
            gratificacao = 400f;
        } else if (fatorH >= 1201 && fatorH >= 1800) {
            gratificacao = 300f;
        } else if (fatorH >= 600 && fatorH >= 1200) {
            gratificacao = 600f;
        } else if (fatorH <= 600) {
            gratificacao = 100f;

        }
        //calculos 
        fatorH = horasT - 2 / 3 * horasf;

        System.out.println("O fato H é : " + df.format(fatorH));

        System.out.print("\n========================\n");

        mediaG = fatorH / gratificacao;

        System.out.print("A media de gratificação: " + mediaG);

        System.out.print("\n========================\n");

        if (fatorH > 1500) {
            maiorFH1 = fatorH;
        }
        if (codigoF > fatorH) {
            maxFuncio = fatorH;
        }

        System.out.println("\n=========================================================");

        System.out.println("A quantidade de funcionarios com fator H maior que 1500     : " + maiorFH1);

        System.out.println("Funcionarios com fator H maior     : " + maxFuncio);

    }  leia.close();

}

Qual o erro?? Olhando seu código perece que você não completou o seu primeiro do..while():

Acha que se eu colocar um “\n” resolveria?

Mas o que você queria com o primeiro comando do?

do{
   System.out.println("==========================");
   [•••]
}

Se você colocou o do deveria ser assim:

do{
   System.out.println("==========================");
   [•••]
}while(sua condição)

ela completou, só ta mal identado kkkkk, só o ultimo do que nao foi completado mesmo

1 curtida

Sabe como faço para que o usuário escolhe um numero de 1 a 100?

O seu leia não está funcionando?

Não está, está em loop eterno

Não estou conseguindo tirar

Eu criei esse exemplo, não sei se vai servir:

import java.util.Scanner;

class Main {
  public static void main(String[] args) {
    
    Scanner scan = new Scanner(System.in);
    //Ler a entrada do usuário
    int codigoF = lerNumFuncionario(Scan);
    
  }
  private static int lerNumFuncionario(Scanner scan){
     
     System.out.println("Escolha um número de 1 a 100:");
     int num = scan.nextInt();
     
     while(num<1 && num>100){
       System.out.println("Por favor Escolha de 1 a 100:");
       num = scan.nextInt();
     }
     return num;
  }
}