Estrutura de repetição dando erro

E ai gente, tudo bem? Espero que estejam todos muito bem. Aqui, eu já fiz classes parecidas com essa milhões de vezes, mas não consigo achar a infeliz causa do erro que está acontecendo no WHILE do DO. Eu já comparei outras classes com essa e nada, será que alguém poderia me ajudar?

Desde já muitíssimo obrigado.


package model;

import controller.Console;

public class Funcionario extends Usuario{

    private String cargo;

    Funcionario func;

    private static final int NOVO = 1;
    private static final int ALTERAR = 2;
    private static final int EXCLUIR = 3;
    private static final int VOLTAR = 4;

    public Funcionario(String nome, String sobreNome, String dataNascimento,
            String login, String senha, String email, String cargo) {
        super(nome, sobreNome, dataNascimento, login, senha, email);
        this.cargo = cargo;
    }
    
    //loop principal da classe Funcionário
    public void principal(){

        int opcaoFun;

        do{

            func.menuFun();

            opcaoFun = Console.lerInt( "Opção; " );

        switch(opcaoFun){

            case NOVO:
                System.out.println( "Em construção" );
                break;
            case ALTERAR:
                System.out.println( "Em construção" );
                break;
            case EXCLUIR:
                System.out.println( "Em construção" );
                break;
            case VOLTAR:
                System.out.println( "Em construção" );
                break;
            default:
                System.out.println( "opção inválida escolha " +
                        "uma entre 1 e 5." );
                break;

        }

        }(while opcaoFun != VOLTAR);


    }

    //opções de Funcionario
    public void menuFun(){

        System.out.println( "Opções de funcionários" );
        System.out.println( "1 - novo" );
        System.out.println( "2 - alterar" );
        System.out.println( "3- excluir" );
        System.out.println( "4 - voltar" );

    }

    //metodo que inserir um novo funcionario
    public void novoFun(){

        System.out.println( "Em construção" );

    }

    //metodo que altera os dados dos funcionarios
    public void alterarFun(){

        System.out.println( "Em construção" );

    }

    //metodo que exclui funcionários
    public void ecluiFun(){

        System.out.println( "Em construção" );

    }

    //métodos get e set
    public String getCargo() {
        return cargo;
    }

    public void setCargo(String cargo) {
        this.cargo = cargo;
    }

    
}

Qual erro? Se disparando Exception, post o StackTrace.

Estou fazendo esta classe no net beans e ele acusou o erro na linha 54

} while (opcaoFun != VOLTAR);  

Desculpa a minha ignorância mas eu não entendi nada do que você falou

porque vc pelo menos nao se da o trabalho de comparar sua linha 54 com a correcao que postei.

achei o erro, obrigado.
Eu tinha visto outra coisa :?