Do While is not working correctly

-1

Do while is not working in code. At first the test that I am doing now is just the first one on the menu (register the user) and then I should go back to the menu until I type S. (It is only running once) Another question is how to register in a list?

 import java.util.ArrayList;
 import java.util.Scanner;
 public class CadastraUsuarios {
 Scanner entrada;

    public void menu(){

    entrada = new Scanner(System.in);
    ArrayList<Clientes> listaDeUsuarios = new ArrayList<Clientes>();

    int op = 0,i,j;


    String opcao;
     do{
    System.out.println("MENU DE ESCOLHAS");
    System.out.println("A- CADASTRAR CLIENTE");
    System.out.println("B- INSERIR O CADASTRO DE UM NOVO TIPO ");
    System.out.println("C- LISTAR TODOS OS  CADASTRADOS");
    System.out.println("D- LISTAR TODOS OS CLIENTES CADASTRADOS");
    System.out.println("E- LISTAR OS  CADASTRADOS PARA UM DETERMINADO CLIENTE");
    System.out.println("F- BUSCAR INFORMAÇÕES DE UM PRODUTO PELO NÚMERO DE ");
    System.out.println("S- SAIR");

    opcao=entrada.nextLine().toUpperCase().trim();
    switch(opcao){
        case "A": System.out.println("Cadastro de Cliente:");


        System.out.println("Digite o nome do usuário");
        Clientes cliente = new Clientes(entrada.nextLine()); 
        System.out.println(cliente.getNome());

        //cadastrar clientes
        break;
        case "B": System.out.println("Inseririndo o cadastro de um novo tipo ...");
        //inserir o cadastro de um novo tipo de 
        break;
        case "C" : System.out.println("Listando todos os  cadastrados...");
        //listar todos os  cadastrados

        break;
        case "D" : System.out.println("Listando todos os clientes cadastrados...");
        //listar todos os clientes cadastrados

        break;
        case "E" : System.out.println("Listando os  cadastrados para um determinado cliente...");
        //listar os cadastrados para um determinado cliente

        break;
        case "F" : System.out.println("Buscando as informações   pelo número ...");
        //buscar as informações  pelo número 

        break;
        case "S" : System.out.println("saindo do programa...");
        //sair do programa

        break;



    }
}while(opcao=="S");

}

//String nome = scanner.nextLine(); cliente.setNome(nome);
}
    
asked by anonymous 25.10.2017 / 20:12

1 answer

2

When comparing strings, you should use the equals() method. For example,% comparators will compare to object references (if they are the same object).

The == method will compare if the value of an object is the same as the value passed as a parameter.

So it would be:

while(opcao.equals("S"));

However, I suspect your code should be repeated while the "S" option is not chosen. So your comparison should be a negation:

// enquanto não for "S", continue o loop
while(!opcao.equals("S"));

More information:

link

    
25.10.2017 / 20:16