package temperature; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class TemperaturePercue { public static void main(String[] args) { try { float ta = 0; // température entrée par l'utilisateur (entre -58F et +41) float v = 0; // facteur vent (supérieur ou égal à 2 en miles per hour) ta = demanderTemperature(); v = demanderVent(); float tp = calculer(ta, v); System.out.println("Température percue: " + tp); } catch (Exception e) { System.exit(1); } } public static float calculer(float ta, float v) { return (float) (35.74 + 0.6215 * ta - 35.75 * v * 0.16 + 0.4275 * ta * v * 0.16); } public static float demanderTemperature() throws Exception { System.out.print("Entrez une valeur entre -58F et +41 inclus: "); float value = Float.valueOf(ecouter()); if ((value < -58) || (value > 41)) { System.out.println("Valeur incorrecte !"); throw new IllegalArgumentException(); } return value; } public static float demanderVent() throws Exception { System.out.print("Entrez le facteur vent (MpH): "); float value = Float.valueOf(ecouter()); if ((value < 2)) { System.out.println("Valeur incorrecte !"); throw new IllegalArgumentException(); } return value; } public static String ecouter() throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line = null; try { line = br.readLine(); } catch (IOException e) { System.out.println("IO error trying to read your name!"); throw e; } return line; } }