Найти высокий и низкий темп (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
ключевое слово.