tenho as seguintes classes:
import java.util.Scanner;
public class Imc {
double peso, altura, result;
double calcularImc (double peso, double altura){
double imc;
return imc = peso / (altura*altura);
}
public void lerResultado (){
Scanner ab = new Scanner(System.in);
System.out.println("Digite seu peso: ");
peso = ab.nextDouble();
System.out.println("Digite seu altura: ");
altura = ab.nextDouble();
result = calcularImc(peso, altura);
System.out.println("o imc é: " + result);
}
public void resultado (){
if(result < 17.0)
System.out.println("Muito abaixo do peso ideal!");
else if(result >= 17)
System.out.println("Abaixo do peso ideal!");
else if(result <= 18.49)
System.out.println("Abaixo do peso ideal!");
else if(result >= 18.5 )
System.out.println("Peso ideal!");
else if(result <= 24.99 )
System.out.println("Peso ideal!");
//falta mais ainda
}
}
import java.util.Scanner;
public class IFDemo {
public static void main(String args[]) {
String sair;
Imc imc = new Imc();
Scanner ab = new Scanner(System.in);
for(;;){
imc.lerResultado();
//sair do laço
System.out.println("Digite s para finalizar o programa: ");
sair = ab.next();
if(sair == "s") break;
imc.resultado();
}
}
}
Minha duvida é quando chega a parte do "if(sair == "s" ) break;" pelo que eu li no livro deveria sair do laço infinito do for( ;; ), exatamente quando o usuário digitasse "s", só quando digito o bendito "s" o laço continua, como faço para sair desse laço infinito?
se alguém poder me ajudar desde já agradeço.