4
respostas

Duvida em orientado a objetos

Faça um programa para ler 2 números double e diga qual é o menor número,usando métodos,no eclipse está dando que o valor local da variavel menor não é usado,acho que fiz algo errado porém não consigo ver,se alguém poder me ajudar ficarei grato

package Aula12e13;

import java.util.Scanner;

public class Ex2 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        System.out.println("Digite para saber qual é o menor número");
        Scanner ler = new Scanner(System.in);
        double menor = (int)10000000;
        double n1 = ler.nextDouble();
        double n2 = ler.nextDouble();

       if(n1>n2) {
           menor=n2;
       }
       else {
           System.out.println("O maior é" + n2);
       }
       imprimir();
       ler.close();
    }




    public static void imprimir() {


    }


}
4 respostas

Oi Vitor, boa noite! Veja que você apenas declarou a variável menor e não a utilizou, por isso o eclipse dá esse warning (alerta) sublinhando a variável em amarelo. Isso não quer dizer que seu código tem erros, apenas avisa que você declarou algo que não utilizou e que, portanto, essa linha de código é desnecessária.

o que falta no seu código é imprimir a variável maior no if:

if(n1>n2){
    System.out.println("O maior é" + n1);
} else{
    System.out.println("O maior é" + n2);
}

Espero ter ajudado e bons estudos!

você pode usar as classes internas de Interger/Double para isso usando um método

public String oMaior(Double n1, Double n2) {
    return "O maior é " + Double.max(num1, num2);
}

Além disso, se você usa o Java 7+, use Try-with-resources com classes autoCloseable.

import java.util.Scanner;

public class Ex2 {
    public static void main(String[] args) {
        System.out.println("Digite para saber qual é o menor número");
        try (Scanner ler = new Scanner(System.in)) {
            Double n1 = ler.nextDouble();
            Double n2 = ler.nextDouble();
            System.out.println(Ex2.oMaior(n1, n2));
            System.out.println(Ex2.oMenor(n1, n2));
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    public static String oMaior(Double n1, Double n2) {
        return "O maior é " + Double.max(n1, n2);
    }
    public static String oMenor(Double n1, Double n2) {
        return "O menor é " + Double.min(n1, n2);
    }

}

Esse catch(Exception e) { e.printStackTrace(); servem para que?

Vitor,

O "catch" serve para capturar uma exception e o "printStackTrace" vai mostrar no console o erro que deu. Isso serve para ajudar a identificar o erro na compilação. Uma exception acontece por exemplo quando você tenta referenciar uma classe mas ela não foi instanciada, então acontece um NullPointerException.

Segue um artigo para servir de base: https://www.caelum.com.br/apostila-java-orientacao-objetos/excecoes-e-controle-de-erros/