Estruturas de repetição

Ola Pessoal!

Primeiramente queria avisar que sou novo em java, sei um pouco de lógica e agora estou tentando programar nessa linguagem…

Bem é o seguinte, esse código ai em baixo é um cálculo de IMC que estou fazendo, mas queria melhora-lo, colocando algumas ‘regras’, por exemplo tentei colocar um “if”, para se nao digitar o nome ele volta para a tela do nome, mas não funcionou. tente if (s==null), não funcionou, parece que ele nao compara o “s”, coloquei um laço do while, tambem não funcinou, passa direto, sem digitar o nome…

Alguem poderia me ajudar?

Tambem poderiam dar dicas de como validar só com letras, por exemplo se digitar numeros o sistema informa "USE LETRAS"

Obrigado

Segue o código:

[code]public class Calc {

public static void main(String[]args){

String s= javax.swing.JOptionPane.showInputDialog(null, “\n\nDigite seu nome!\n\n”);
String s1= javax.swing.JOptionPane.showInputDialog(null,“Qual seu peso? \n Por ex: 72.3”);
String s2= javax.swing.JOptionPane.showInputDialog(null,“Qual sua altura?\n Por ex: 1.75”);

float peso = Float.parseFloat(s1);
double altura= Double.parseDouble(s2);
double resultado = peso/(altura*altura);
javax.swing.JOptionPane.showMessageDialog(null, s+" Seu IMC = " + resultado);
String s3=null;

if (resultado<18.5){
s3 = “Abaixo do peso”;
}
else if (resultado < 24.9){
s3 = “com peso normal”;
}
else{
s3 = “Obeso”;
}
javax.swing.JOptionPane.showMessageDialog(null,"Você esta "+s3);

}[/code]

Se meu cérebro já não parou de funcionar por hoje vc pode fazer isso

String nome = null;

while (nome == null) {
         // seria legal informar ao usuário que algo está faltando se esse loop se repetir.
	 nome =  javax.swing.JOptionPane.showInputDialog(null, "\n\nDigite seu nome!\n\n");
}

Para validar só com letras tem uns métodos da API.
Acho que na classe Character, que verifica, se não me engano o nome do método é isLetter();

Pois cara como eu falei eu usei While, mas ele passa direto, :shock: se eu nao digitar nada ele continua e pede o peso…

Testei novamente o q vc me disse, mas passa direto…
Não fica no laço… :frowning:

Dessa forma ele continua no laço se clicar em “Cancel”… :evil:
Então tem q descobrir o que ele envia qndo clica no “Ok” :wink:

Verdade, não tinha prestado atenção nesse caso.

Adicione ao while para verificar se nome recebeu uma String vazia.

Ou seja

while ((nome == null) || (nome.equals(""))

Agora vai!
:smiley: