Problema ao ler dado de entrada

Pessoal, estou fazendo um software simples de biblioteca e na classe principal dele, criei o método Iniciar() na classe Principal.
Com intuito de mostrar ao usuário qual opção ele quer no BlueJ Terminal Window.
A ideia é que ao aparecer esse menu no terminal, a pessoa que esteja utilizando o programa escolha uma das 4 opções. Para isso, ele digita o número
que eu quero armazenar na variável inteira escolha. Mas tá dando erro: “incompatible types - found java.util.Scanner but expected int”
O que devo mudar para funcionar?
Obs.: lá em cima coloquei import java.util.Scanner;

public void iniciar()
{
boolean finaliza = false;

    System.out.println("Bem vindo ao programa Biblioteca.");
    System.out.println("Escolha uma das opções, para usá-lo.");
    System.out.println("1. Usuario");
    System.out.println("2. Biblitecário");
    System.out.println("3. Administrador");
    System.out.println("4. Encerrar o programa");
    System.out.println(" ");
   escolha=new Scanner(System.in);
   while (! finaliza) {
        escolha = getCommand();
        finaliza = processCommand(escolha);
    }
    System.out.println("Obrigado por usar o programa.");
    
}

Scanner(System.in);

O que faz a linha:

while (! finaliza)

?

Você poderia facilitar demais o seu trabalho usando a estrutura de decisão switch/case.

Essa linha aí é só ele verificar se a variável boleana finaliza é verdadeira. Se for, ele encerra o programa.
eu uso switch/case, mas depois…
Meu problema agora está em capturar o que o usuário digita no programa (qual das 4 opções q ele quer). Como é a sintaxe para isso? Não tem uma forma simples de fazer isso?
Eu coloquei:

escolha = new Scanner(System.in);

Mas dá dando o erro que falei…

Bem, basicamente é isso:

escolha = new Scanner(System.in); // aqui você mostra as opções. System.out.println("Digite uma opção "); int opc = escolha.nextInt(); switch(opc) //...

A variável opc receberá o valor digitado pelo usuário para selecionar a determinada opção.

Fiz o que você sugeriu, mas não deu certo. Aparece o erro: “cannot find symbol - variable escolha”

Tentei colocar lá em cima a declaração da variável escolha : int escolha . Porém, aparece o erro: “incompatible types - found java.util.Scanner but expected int”
Também tentei colocar lá em cima : String escolha, mas aparece o erro : “incompatible types - found java.util.Scanner but expected Java.lang.String”

Perdão, acabei errando no código :smiley:

O correto seria:

Scanner escolha = new Scanner(System.in);  

Desculpe o equivoco.

use switch case que é melhor

Read all posts, please. :wink:

amigo está dando tipos incompatives pq vc ta tentando capturar um inteiro de um tipo String

caso seja necessario continuar com isso use Casting

espero ter ajudado

ps: li todos as mensagens valeu!