IF / Else - duvidas em código

4 respostas
M

Olá, primeiramente parabéns pelo site e pelo fórum, nota 10!
Entao, estou no inicio do inicio em java, e to tentando construir um código q pega tres numeros e coloque em ordem crescente, mas nao estou conseguindo fazer rodar, pois tenho grandes duvidas qto a construcao de if e else qdo entra mais um criterio na comparação, nao sei como colocar, to acompanhando no livro do deitel mas o exemplo q estou é com dois numeros…

Muito obrigado a quem puder me ajudar, esse é meu código q só dá erro!!

Abraços,

marcos

=============================
// MostraOrdemCrescente.java

//compara inteiros utilizando intrucoes if, operadores
//relacionais e operadores de igualdade

//pacotes de extensao java
import javax.swing.JOptionPane;

public class MostraOrdemCrescente {

//metodo main inicia a execucao do programa java
public static void main ( String args[] )

{
    
    double numero1, numero2, numero3;
    String entrada = "";
    
    
    
    // le o primeiro numero do usuario
    entrada = JOptionPane.showInputDialog (null, " Digite o primeiro numero inteiro", "Mostra em Ordem Crescente", JOptionPane.QUESTION_MESSAGE);
    numero1 = Double.parseDouble(entrada);
    
    // le o segundo numero do usuario
    entrada = JOptionPane.showInputDialog (null, " Digite o segundo numero inteiro", "Mostra em Ordem Crescente", JOptionPane.QUESTION_MESSAGE);
    numero2= Double.parseDouble(entrada);
    
    // le o terceiro numero do usuario
    entrada = JOptionPane.showInputDialog (null, " Digite o terceiro numero inteiro", "Mostra em Ordem Crescente", JOptionPane.QUESTION_MESSAGE);
    numero3= Double.parseDouble(entrada);
    
    
    //inicia os testes condicionais
     
    if  ((numero1 >= numero2) | (numero1 >= numero3) | (numero2 >= numero3))
    {JOptionPane.showMessageDialog(null, "A sequencia de numero digitados em ordem crescente é: " + numero1 + numero2 + numero3, "Mostra em Ordem Crescente", JOptionPane.INFORMATION_MESSAGE);}
    
    else
    (( numero1 >= numero2) | (numero1 >= numero3) | (numero2 <= numero3 ))
    { JOptionPane.showMessageDialog(null, "A sequencia ds numeros digitados em ordem crescente é: " + numero1 + numero3 + numero2, "Mostra em Ordem Crescente", JOptionPane.INFORMATION_MESSAGE );}

    else
    (( numero2 >= numero1) | (numero1 >= numero3) | (numero2 >= numero3 ))
    { JOptionPane.showMessageDialog(null, "A sequencia ds numeros digitados em ordem crescente é: " + numero2 + numero1 + numero3, "Mostra em Ordem Crescente", JOptionPane.INFORMATION_MESSAGE );}
    
    else
    (( numero2 >= numero1) | (numero1 <= numero3) | (numero2 >= numero3) )
    { JOptionPane.showMessageDialog(null, "A sequencia ds numeros digitados em ordem crescente é: " + numero2 + numero3 + numero1, "Mostra em Ordem Crescente", JOptionPane.INFORMATION_MESSAGE );}
    
    else
    (( numero3 >= numero1) | (numero1 >= numero2) | (numero3 >= numero2) )
    { JOptionPane.showMessageDialog(null, "A sequencia ds numeros digitados em ordem crescente é: " + numero3 + numero1 + numero2, "Mostra em Ordem Crescente", JOptionPane.INFORMATION_MESSAGE );}
    
    else
    (( numero3 >= numero1) | (numero1 <= numero2) | (numero3 >= numero2) )
    { JOptionPane.showMessageDialog(null, "A sequencia ds numeros digitados em ordem crescente é: " + numero3 + numero2 + numero1, "Mostra em Ordem Crescente", JOptionPane.INFORMATION_MESSAGE );}
    
    
    System.exit (0); //termina o aplicativo
    
} // termina o metodo main

} // termina a classe MostraOrdemCrescente

4 Respostas

B

marcos_atib, eu achei melhor modificar o código , porque teria que tentar entender o que vc fez, entaum achei melhor fazer de outra forma, entaum eu tirei todos os os if que vc fez, marcos_atib, eu acho melhor vc pegar uma apostila de lógica de programação(ou de C ou C++) pra entender o conceito dos if e else, dá uma olhada no www.apostilando.com ou www.apostilando.com.br(um desses), vc faz faculdade ou colégio? porque se fizer, é melhor pedir ajuda ao professor sobre os if e else, qualquer coisa é só me responder.

// MostraOrdemCrescente.java

//compara inteiros utilizando intrucoes if, operadores
//relacionais e operadores de igualdade

//pacotes de extensao java
import javax.swing.JOptionPane;

public class MostraOrdemCrescente {

//metodo main inicia a execucao do programa java
public static void main ( String args[] )

{

double[] numero=new double[3];

double aux;

boolean testa;

String entrada = “”;
// le o primeiro numero do usuario

entrada = JOptionPane.showInputDialog (null, " Digite o primeiro numero inteiro", Mostra em Ordem Crescente, JOptionPane.QUESTION_MESSAGE);

numero[0] = Double.parseDouble(entrada);
// le o segundo numero do usuario

entrada = JOptionPane.showInputDialog (null, " Digite o segundo numero inteiro", Mostra em Ordem Crescente, JOptionPane.QUESTION_MESSAGE);

numero[1]= Double.parseDouble(entrada);
// le o terceiro numero do usuario

entrada = JOptionPane.showInputDialog (null, " Digite o terceiro numero inteiro", Mostra em Ordem Crescente, JOptionPane.QUESTION_MESSAGE);

numero[2]= Double.parseDouble(entrada);

//10 8 15
//8 10 15
//inicia os testes condicionais

do

{

testa=true;

for(int i=0;i<2;i++)

{

if(numero[i]>numero[i+1])

{

aux=numero[i+1];

numero[i+1]=numero[i];

numero[i]=aux;

testa=false;

}

}

}while(!testa);

/*

if ((numero1 >= numero2) || (numero1 >= numero3) || (numero2 >= numero3))
{JOptionPane.showMessageDialog(null, "A sequencia de numero digitados em ordem crescente é: " + numero1 + numero2 + numero3, “Mostra em Ordem Crescente”, JOptionPane.INFORMATION_MESSAGE);}

else

if(( numero1 >= numero2) || (numero1 >= numero3) || (numero2 <= numero3 ))

{ JOptionPane.showMessageDialog(null, "A sequencia ds numeros digitados em ordem crescente é: " + numero1 + numero3 + numero2, “Mostra em Ordem Crescente”, JOptionPane.INFORMATION_MESSAGE );}
else

if(( numero2 >= numero1) || (numero1 >= numero3) || (numero2 >= numero3 ))

{ JOptionPane.showMessageDialog(null, "A sequencia ds numeros digitados em ordem crescente é: " + numero2 + numero1 + numero3, “Mostra em Ordem Crescente”, JOptionPane.INFORMATION_MESSAGE );}
else

if(( numero2 >= numero1) || (numero1 <= numero3) || (numero2 >= numero3) )

{ JOptionPane.showMessageDialog(null, "A sequencia ds numeros digitados em ordem crescente é: " + numero2 + numero3 + numero1, “Mostra em Ordem Crescente”, JOptionPane.INFORMATION_MESSAGE );}
else

if(( numero3 >= numero1) || (numero1 >= numero2) || (numero3 >= numero2) )

{ JOptionPane.showMessageDialog(null, "A sequencia ds numeros digitados em ordem crescente é: " + numero3 + numero1 + numero2, “Mostra em Ordem Crescente”, JOptionPane.INFORMATION_MESSAGE );}
else

if(( numero3 >= numero1) || (numero1 <= numero2) || (numero3 >= numero2) )

{ JOptionPane.showMessageDialog(null, "A sequencia ds numeros digitados em ordem crescente é: " + numero3 + numero2 + numero1, “Mostra em Ordem Crescente”, JOptionPane.INFORMATION_MESSAGE );}

*/
JOptionPane.showMessageDialog(null, "A sequencia ds numeros digitados em ordem crescente é: " + numero[0] + numero[1] + numero[2], “Mostra em Ordem Crescente”, JOptionPane.INFORMATION_MESSAGE );
System.exit (0); //termina o aplicativo

} // termina o metodo main

} // termina a classe MostraOrdemCrescente

F

Não sei se é apenas isso que está errado no seu código, mas você precisa colocar o if após cada else com exceção do último:

Exemplo:

if (x > 1) {
// comandos
}
else if (x < 1) {
// comandos
}
else {
// comandos
}

[]'s
Fred

M

muito obrigado pela ajuda e pela dica, vou dar uma estudada na parte de logica, pois nao sei ainda como funciona a instrucao while, to fazendo facu e to caminhando ainda, to gostando muito de java, bem desafiador.

Valeu!

marcos

R

ae marcos,

Antes de você estuda java e OO, dá uma estudada em lógica de programação, você vai precisar usar a lógica em quase tudo que você for fazer! ;D

http://www.geocities.com/logicaonline/

Essá página ensina bastante coisa e tem muito exercicios sobre lógica! Vale a pena conferir! :smiley:

Criado 20 de março de 2005
Ultima resposta 21 de mar. de 2005
Respostas 4
Participantes 4