Meu programa está certo?

6 respostas
GALACTUS

Eu estou começando a programar em Java e queria saber se este programa que eu fiz está certo e se dá pra deixa-lo menor:

// Programa que lê cinco números inteiros e apresenta o maior e o menor valor

package maioremenor;

import javax.swing.JOptionPane;

public class MaiorEmenor

{

public static void main(String[] args)

{

String v1=JOptionPane.showInputDialog(Digite um número);

String v2=JOptionPane.showInputDialog(Digite mais um número);

String v3=JOptionPane.showInputDialog(Digite mais um número);

String v4=JOptionPane.showInputDialog(Digite mais um número);

String v5=JOptionPane.showInputDialog(Digite mais um número);

String v6="";
int n1=Integer.parseInt(v1);
    int n2=Integer.parseInt(v2);
    int n3=Integer.parseInt(v3);
    int n4=Integer.parseInt(v4);
    int n5=Integer.parseInt(v5);
    
    if(n1==n2 && n1==n3 && n1==n4 && n1==n5)
    {
        JOptionPane.showMessageDialog(null,"Todos os valores são iguais",
                "RESULTADO",JOptionPane.PLAIN_MESSAGE);
        System.exit(0);
    }
    if(n1<n2 && n1<n3 && n1<n4 && n1<n5)
        v6=v6+n1+"\n";
    if(n2<n1 && n2<n3 && n2<n4 && n2<n5)
        v6=v6+n2+"\n";
    if(n3<n1 && n3<n2 && n3<n4 && n3<n5)
        v6=v6+n3+"\n";
    if(n4<n1 && n4<n2 && n4<n3 && n4<n5)
        v6=v6+n4+"\n";
    if(n5<n1 && n5<n2 && n5<n3 && n5<n4)
        v6=v6+n5+"\n";
        
    if(n1>n2 && n1>n3 && n1>n4 && n1>n5)
        v6=v6+n1;
    if(n2>n1 && n2>n3 && n2>n4 && n2>n5)
        v6=v6+n2;
    if(n3>n1 && n3>n2 && n3>n4 && n3>n5)
        v6=v6+n3;
    if(n4>n1 && n4>n2 && n4>n3 && n4>n5)
        v6=v6+n4;
    if(n5>n1 && n5>n2 && n5>n3 && n5>n4)
        v6=v6+n5;
        JOptionPane.showMessageDialog(null,v6,"Menor e Maior valor",
            JOptionPane.PLAIN_MESSAGE);
        System.exit(0);
}

}

Também queria saber se toda vez que o Java lê algo do teclado, ele lê como um String e temos que converter para o determinado tipo de dado que vamos usar tipo int, double,float etc…???

6 Respostas

claudneto
import java.util.Scanner;

class MaiorEMenor {
  public static void main (String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println ("Digite o 1o valor: ");
    int a = sc.nextInt();
    System.out.println ("Digite o 2o valor: ");
    int b = sc.nextInt();
    System.out.println ("Digite o 3o valor: ");
    int c = sc.nextInt();
    System.out.println ("Digite o 4o valor: ");
    int d = sc.nextInt();
    System.out.println ("Digite o 5o valor: ");
    int e = sc.nextInt();
    
    if (a > b && a > c && a > d && a > e) {
      System.out.println ("O maior valor é: " + a);
    }
    else if (b > a && b > c && b > d && b > e) {
      System.out.println ("O maior valor é: " + b);
    }
    else if (c > a && c > b && c > d && c > e) {
      System.out.println ("O maior valor é: " + c);
    }
    else if (d > a && d > b && d > c && d > e) {
      System.out.println ("O maior valor é: " + d);
    }
    else if (e > a && e > b && e > c && e > d) {
      System.out.println ("O maior valor é: " + e);
    }
    
    if (a < b && a < c && a < d && a < e) {
      System.out.println ("O menor valor é: " + a);
    }
    else if (b < a && b < c && b < d && b < e) {
      System.out.println ("O menor valor é: " + b);
    }
    else if (c < a && c < b && c < d && c < e) {
      System.out.println ("O menor valor é: " + c);
    }
    else if (d < a && d < b && d < c && d < e) {
      System.out.println ("O menor valor é: " + d);
    }
    else if (e < a && e < b && e < c && e < d) {
      System.out.println ("O menor valor é: " + e);
    }
  }
}

Eu fiz com Scanner...altere ae se precisar!

H

Se está certo eu não sei…

Mas acho que você deveria dar uma olhada nesse tópico Aqui.

Beleza

claudneto

Seja bem-vindo ao mundo Java!

Não…por exemplo no meu código, ele lê como inteiro direto…

alucardeck

rapaz… vc é guerreiro…
teve todo esse trabalho para escrever tantos IFs heheh

tem cara de projeto de faculdade… mas como vc jah resolveu… vou mostrar uma solução um pouco melhor… lembrando que é possivel melhorar ainda mais o meu codigo usando sort do Collections em uma List…

// seu metodo
// Inicio
int[] numeros = new int[5];
for(int i=0; i<numeros.length; i++){
  numeros[i] = Integer.parseInt(JOptionPane.showInputDialog("Digite "+(i+1)+"º número")); 
}

int maior = numeros[0];
int menor = numeros[0];
for(int i=1; i<numeros.length; i++){
  if(numeros[i]>=maior)
     maior=numeros[i];
  else if(numeros[i]<=menor)
     menor=numeros[i];
}

JOptionPane.showMessageDialog(null,"Maior: "+maior+"\nMenor: "+menor);
// fim do metodo
GALACTUS

BELEZA GALERA, VALEU MESMO PELA FORÇA AE.

M
alucardeck:
rapaz... vc é guerreiro... teve todo esse trabalho para escrever tantos IFs heheh

tem cara de projeto de faculdade.. mas como vc jah resolveu... vou mostrar uma solução um pouco melhor... lembrando que é possivel melhorar ainda mais o meu codigo usando sort do Collections em uma List...

// seu metodo
// Inicio
int[] numeros = new int[5];
for(int i=0; i<numeros.length; i++){
  numeros[i] = Integer.parseInt(JOptionPane.showInputDialog("Digite "+(i+1)+"º número")); 
}

int maior = numeros[0];
int menor = numeros[0];
for(int i=1; i<numeros.length; i++){
  if(numeros[i]>=maior)
     maior=numeros[i];
  else if(numeros[i]<=menor)
     menor=numeros[i];
}

JOptionPane.showMessageDialog(null,"Maior: "+maior+"\nMenor: "+menor);
// fim do metodo

Valeu! Sua resposta foi elegante! O que tinha de código feio neste tópico não tá no gibi!
Brincadeira! Vale pelo aprendizado! Aquele abraço!
San

Criado 18 de setembro de 2008
Ultima resposta 18 de set. de 2008
Respostas 6
Participantes 5