Найти высокий и низкий темп (JAVA) 1-е домашнее задание

Я не могу понять это. Мне нужно попросить пользователя за 3 поплавка, получил его. Возникли проблемы с выводом верхней и нижней части. Любая помощь будет потрясающей!

package temp;
import java.util.Scanner;
/**
 *
 * @author Pherman
 */
public class Temp {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
         float temp1;
         float temp2;
         float temp3;
    float highTemp;
    float lowTemp;

    System.out.print("Please enter your first temperature");
        temp1=scan.nextFloat();
    System.out.print("Please enter your second temperature");
        temp2=scan.nextFloat();
    System.out.print("Please enter your third temperature");
        temp3=scan.nextFloat();

    }

 }

4 ответа

Решение

Вот совет для вас.

http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html

float highTemp = Math.max(temp1, Math.max(temp2, temp3); // high

float lowTemp = Math.min(temp1, Math.min(temp2, temp3); // low

float middleTemp = (temp1 + temp2 + temp3) - highTemp - lowTemp; // middle

При таком подходе нет необходимости использовать if, switch, array или sort,

Я бы использовал массив, и Arrays.sort(float[]) вроде так

public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    float[] temp = new float[3];

    for (int i = 0; i < temp.length; ) {
        System.out.printf("Please enter your temperature #%d ", i);
        if (scan.hasNextFloat()) {
            temp[i] = scan.nextFloat();
            i++;
        } else {
            scan.next();
        }
    }
    java.util.Arrays.sort(temp);
    System.out.println("Low = " + temp[0]);
    System.out.println("High = " + temp[temp.length - 1]);
}

Использование коллекций в мин / макс

List<Float> myList = new ArrayList<Float>();

System.out.print("Please enter your first temperature");
myList.add(scan.nextFloat());
System.out.print("Please enter your second temperature");
myList.add(scan.nextFloat());
System.out.print("Please enter your third temperature");
myList.add(scan.nextFloat());

System.out.println(Collections.min(myList));
System.out.println(Collections.max(myList));

Вы также можете использовать цикл, чтобы получить свой ввод вместо того, чтобы использовать System.out.print

Инициализируйте highTemp и lowTemp, когда это возможно, и обновляйте их значения, когда это необходимо.

Использовать if ключевое слово.

Другие вопросы по тегам