Alguém pode dar uma analisada no que estou tentando fazer?
Ele não entra pra digitar o valor da variável confirm e também na está validando direito ela!!
Sem falar que na última parte entra num looping infinito por causa da porcaria da comfirm!!
Código:
import java.util.*;
public class Aula2{
public static void main(String[] args){
Scanner entrada = new Scanner(System.in);
float f=0;
String confirm=“S”;
do{
System.out.print("Digite um valor com ponto flutuante: ");
f = entrada.nextFloat();
if(f >= 1.99 && f <= 5.99)
System.out.println("O número " +f +" esta entre 1.99 e 5.99");
else
if(f < 1.99)
System.out.println("O número " +f +" é menor que 1.99");
else
System.out.println("O número " +f +" é maior que 5.99");
System.out.println("Deseja fazer esta operação novamente?(S/N): "); //Independente das condições acima, ele deveria entrar aqui e me deixar digitar a opção
confirm = entrada.nextLine(); //Ele não entra aqui!!!
confirm = confirm.toUpperCase();
if(confirm != "S" || confirm != "N"){ //Neste momento, mesmo a string estando iniciada em S, ele entra
while(confirm != "S" || confirm != "N"){
System.out.print("Opção invalida, digite S = Sim ou N = Não: "); //e vem para ca, e independente da entrada que eu informo, ele entra num looping infinito
confirm = entrada.nextLine();
confirm = confirm.toUpperCase();
}
}
}while(confirm == "S");
}
}
/*Grato desde já,
Vagner, comparação de strings é sempre com equals. Nunca com “==” ou “!=”.
Testa assim:
import java.util.*;
public class Aula2{
public static void main(String[] args){
Scanner entrada = new Scanner(System.in);
float f=0;
String confirm="S";
do{
System.out.print("Digite um valor com ponto flutuante: ");
f = entrada.nextFloat();
if(f >= 1.99 && f <= 5.99){
System.out.println("O número " +f +" esta entre 1.99 e 5.99");
} else if(f < 1.99) {
System.out.println("O número " +f +" é menor que 1.99");
} else {
System.out.println("O número " +f +" é maior que 5.99");
}
System.out.println("Deseja fazer esta operação novamente?(S/N):");
confirm = entrada.next();
confirm = confirm.toUpperCase();
while(!confirm.equals("S") && !confirm.equals("N")){
System.out.print("Opção invalida, digite S = Sim ou N = Não: ");
confirm = entrada.nextLine();
confirm = confirm.toUpperCase();
}
} while(confirm.equals("S"));
}
}
Para seu código ficar mais “apresentável” tente substituir o uso da String confirma para um boolean confirm. Fica mais fácil de entender e o código fica mais limpo!
Galera, MUITO OBRIGADO MESMO pela ajuda!!! \o/ Funcionou perfeitamente.
Aprendi mais um macete crussial para meu aprendizado. rsrsrs
Agora quanto ao uso de variável do tipo boolean, fiquei com uma dúvida: Como eu farei para associar as entradas de teclado S e N à true e false?
Valeu galera… Abraço!
Se a entrada for ‘S’ seta como ‘true’, senão seta como ‘false’…
Da próxima vez, posta o código tbm dentro da TAG Code…
É um botãozinho logo acima da caixa de mensagem que você escreve…
Abraços 
Se resolveu, coloque a TAG [Resolvido] no título do tópico!!

[]'s