Pessoal por favor me expliquem o que pode estar errado neste código
String tipoVenda;
int opc;
do {
tipoVenda = JOptionPane.showInputDialog(null, " 1 - [N]ormal\n 2 - [D]ébito \n 3 - [C]ortesia\n\n Digite uma das opções", "Tipo de venda", JOptionPane.QUESTION_MESSAGE);
//Convertendo uma string em um int
opc = Integer.parseInt(tipoVenda);
} while ((opc != 1 ) || (opc != 2) ||( opc != 3));
Tipo…Esse laço é para garantir que o programa só irá prosseguir se o usuário digitar 1 ,2 ou 3.
Porém ele não prossegue nem quando as opções são 1 ,2 ou 3.
Dúvida básica mas não sei como resolver. Nuncas vi isso . Sempre fiz assim em C …
Troca o || por &&. Porque do jeito que está, se você digitar 1, ele falha na primeira comparação, mas valida a segunda condição, o que já é suficiente para continuar no while, mas se colocar o &&, ao falhar na primeira condição, é o suficiente para falhar o while inteiro.