System.out.println("\nSelecione uma categoria de pagamento abaixo:\n\n1-Km Livre\n2-Preço por Km");System.out.print("\nDigite a opção: ");inttipo=Ler.nextInt();Ler.nextLine();System.out.println("tipo: "+tipo);//conferindovalordavariávelwhile(tipo!=1||tipo!=2){System.out.print("Opção inválida! Digite novamente:");tipo=Ler.nextInt();Ler.nextLine();}
Log:
Selecione uma categoria de pagamento abaixo:
1-Km Livre
2-Preço por Km
Digite a opção: 1
tipo: 1
Opção inválida! Digite novamente:
Não era pra entrar no while, por que tá entrando?
Obrigado.
1 é diferente de 1 ? false
1 é diferente de 2 ? true
false || true é true pela tabela verdade do OR
o que vc quer é usar AND
tipo != 1 && tipo != 2
L
leonardobg7
Que descuido meu, muito obrigado. Deu certo agora
L
leonardobg7
Tenho mais um problema parecido:
System.out.print("Digite a placa do carro: ");StringnomePlaca=Ler.nextLine();for(intl=0;l<listaDeCarros.size();l++){intr=0;while(r==0){if(listaDeCarros.get(l).getPlaca().equals(nomePlaca)){r=1;carro.add(listaDeCarros.get(l));}else{System.out.print("Placa Inválida! - Digite novamente: ");nomePlaca=Ler.nextLine();}//final else plca }//final while placa }//final for lista de carros
Log:
Digite o CPF do cliente: [telefone removido]
Numero de carros que serão adicionados: 1
Digite a placa do carro: AAA-1111
Placa Inválida! - Digite novamente:
Esta placa está cadastrada, e quando digito a placa ele cai no if e adiciona, o problema é que ele está lendo o else também.
Eu implementei essa parte de conferência de dados (se o dado tá errado, digitar novamente) depois. Aplaca existe, o carro é adicionado, etc; Tudo OK, Porém não estou entendendo porque tá caindo no else também.
P
peczenyj
pra que vc enfia esse while dentro do for?
L
leonardobg7
Único jeito que sei para fazer repetição.
Enquanto o usuário digitar informação errada vai repetir o código.
Vai cair dentro do while, aí no IF verifica se o nome da placa digitada é igual a placa que está cadastrada. Se estiver cadastrada R passa a valer 1 e quebra o ciclo While. Se a placa estiver errada vai ficar repetindo até a placa existir.
P
peczenyj
vamos la
o seu laço while é pra controlar uma coisa ( o fato da placa ser encontrada ou não, e vc toma uma decisão )
o leu laço for é o seu laço de busca. perceba que se vc refatorar pra