Bom dia sou novato em java

Bom dia sou novato em java fiz o codigo abaixo mas da erro na compilaçao alguem pode me ajudar

import java.util.Scanner;

public class BancoSimples {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    double saldo = 0.0;
    boolean continuar = true;

    while (continuar) {
        System.out.println("Menu:");
        System.out.println("1: Depositar");
        System.out.println("2: Sacar");
        System.out.println("3: Consultar Saldo");
        System.out.println("0: Encerrar");
        System.out.print("Escolha uma opção: ");
        int opcao = scanner.nextInt();

        switch (opcao) {
            case 1:
                System.out.print("Digite o valor a ser depositado: ");
                double deposito = scanner.nextDouble();
                saldo += deposito;
                System.out.printf("Saldo atual: %.1f%n", saldo);
                break;
            case 2:
                System.out.print("Digite o valor a ser sacado: ");
                double saque = scanner.nextDouble();
                if (saque <= saldo) {
                    saldo -= saque;
                    System.out.printf("Saldo atual: %.1f%n", saldo);
                } else {
                    System.out.println("Saldo insuficiente.");
                }
                break;
            case 3:
                System.out.printf("Saldo atual: %.1f%n", saldo);
                break;
            case 0:
                continuar = false;
                System.out.println("Programa encerrado.");
                break;
            default:
                System.out.println("Opção inválida. Tente novamente.");
                break;
        }
    }
    
    scanner.close();
}

}

E como vc está tentando compilar? Qual a mensagem de erro que aparece?

Pois eu copiei seu código e rodou normalmente, então sem saber como vc está tentando compilar e rodar este código (e dar mais detalhes do erro), fica difícil adivinhar a causa do problema.

veja as mensagem de erro

Exception in thread “main” java.util.NoSuchElementException
at java.base/java.util.Scanner.throwFor(Scanner.java:937)
at java.base/java.util.Scanner.next(Scanner.java:1594)
at java.base/java.util.Scanner.nextInt(Scanner.java:2258)
at java.base/java.util.Scanner.nextInt(Scanner.java:2212)
at BancoSimples.main(BancoSimples.java:20)

pode ser meu compilador usei eclipse e apresentou esse erro

Main.java:7: error: class SimulacaoBancaria is public, should be declared in a file named SimulacaoBancaria.java
public class SimulacaoBancaria {

Isso não é erro de compilação. O programa compilou e rodou, e ocorreu um erro durante a execução.

Basicamente, esse erro ocorre quando o Scanner tenta ler algo (no caso, é o nextInt feito na linha 20 da classe BancoSimples), mas não há mais dados a serem lidos. Como vc rodou esse programa? Ele mostra a mensagem “Escolha uma opção” e vc chega a digitar algo?

No seu primeiro exemplo a classe se chama BancoSimples, vc mudou o nome por acaso? Enfim, essa mensagem diz que se a classe é pública, então o nome do arquivo deve ser o mesmo da classe. Basta mudar o nome do arquivo para SimulacaoBancaria.java, como a própria mensagem de erro diz.

Desculpe e a mesmo programa mas com nones diferentes

import java.util.Scanner;

public class SimulacaoBancaria {

public static void main(String[] args) {
    Scanner scanner = new Scanner(System.in);
    double saldo = 0;
    boolean continuar = true;

    while (continuar) {
        System.out.println("Menu:");
        System.out.println("1. Depositar");
        System.out.println("2. Sacar");
        System.out.println("3. Consultar Saldo");
        System.out.println("0. Encerrar");
        System.out.print("Escolha uma opção: ");
        int opcao = scanner.nextInt();

        switch (opcao) {
            case 1:
                System.out.print("Digite o valor a ser depositado: ");
                double deposito = scanner.nextDouble();
                saldo += deposito;
                System.out.printf("Saldo atual: %.2f\n", saldo);
                break;
            case 2:
                System.out.print("Digite o valor a ser sacado: ");
                double saque = scanner.nextDouble();
                if (saque <= saldo) {
                    saldo -= saque;
                    System.out.printf("Saldo atual: %.2f\n", saldo);
                } else {
                    System.out.println("Saldo insuficiente.");
                }
                break;
            case 3:
                System.out.printf("Saldo atual: %.2f\n", saldo);
                break;
            case 0:
                System.out.println("Programa encerrado.");
                continuar = false;  // Atualiza a variável de controle para encerrar o loop
                break;
            default:
                System.out.println("Opção inválida. Tente novamente.");
        }
    }
    scanner.close();
}

}