Advertisement
Spocoman

Metric Converter(Simple Conditions)

Sep 7th, 2024
527
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.00 KB | None | 0 0
  1. import java.util.Scanner;
  2.  
  3. public class Main {
  4.     public static void main(String[] args) {
  5.         Scanner scanner = new Scanner(System.in);
  6.         double distance = Double.parseDouble(scanner.nextLine());
  7.         String inputMetric = scanner.nextLine(),
  8.                 outputMetric = scanner.nextLine();
  9.  
  10.         if (inputMetric.equals("m")) {
  11.             distance /= 1000;
  12.         } else if (inputMetric.equals("cm")) {
  13.             distance /= 100000;
  14.         } else if (inputMetric.equals("mm")) {
  15.             distance /= 1000000;
  16.         } else if (inputMetric.equals("mi")) {
  17.             distance /= 0.621371192;
  18.         } else if (inputMetric.equals("in")) {
  19.             distance /= 39370.0787;
  20.         } else if (inputMetric.equals("ft")) {
  21.             distance /= 3280.8399;
  22.         } else if (inputMetric.equals("yd")) {
  23.             distance /= 1093.6133;
  24.         }
  25.  
  26.         if (outputMetric.equals("m")) {
  27.             distance *= 1000;
  28.         } else if (outputMetric.equals("cm")) {
  29.             distance *= 100000;
  30.         } else if (outputMetric.equals("mm")) {
  31.             distance *= 1000000;
  32.         } else if (outputMetric.equals("mi")) {
  33.             distance *= 0.621371192;
  34.         } else if (outputMetric.equals("in")) {
  35.             distance *= 39370.0787;
  36.         } else if (outputMetric.equals("ft")) {
  37.             distance *= 3280.8399;
  38.         } else if (outputMetric.equals("yd")) {
  39.             distance *= 1093.6133;
  40.         }
  41.  
  42.         System.out.printf("%f", distance);
  43.     }
  44. }
  45.  
  46. ИЛИ:
  47.  
  48. import java.util.Scanner;
  49.  
  50. public class Main {
  51.     public static void main(String[] args) {
  52.         Scanner scanner = new Scanner(System.in);
  53.         double distance = Double.parseDouble(scanner.nextLine());
  54.         String inputMetric = scanner.nextLine(),
  55.                 outputMetric = scanner.nextLine();
  56.  
  57.         switch (inputMetric) {
  58.             case "m" -> distance /= 1000;
  59.             case "cm" -> distance /= 100000;
  60.             case "mm" -> distance /= 1000000;
  61.             case "mi" -> distance /= 0.621371192;
  62.             case "in" -> distance /= 39370.0787;
  63.             case "ft" -> distance /= 3280.8399;
  64.             case "yd" -> distance /= 1093.6133;
  65.         }
  66.  
  67.         switch (outputMetric) {
  68.             case "m" -> distance *= 1000;
  69.             case "cm" -> distance *= 100000;
  70.             case "mm" -> distance *= 1000000;
  71.             case "mi" -> distance *= 0.621371192;
  72.             case "in" -> distance *= 39370.0787;
  73.             case "ft" -> distance *= 3280.8399;
  74.             case "yd" -> distance *= 1093.6133;
  75.         }
  76.  
  77.         System.out.printf("%f", distance);
  78.     }
  79. }
  80.  
  81. Решение с тернарен оператор:
  82.  
  83. import java.util.Scanner;
  84.  
  85. public class Main {
  86.     public static void main(String[] args) {
  87.         Scanner scanner = new Scanner(System.in);
  88.         double distance = Double.parseDouble(scanner.nextLine());
  89.         String inputMetric = scanner.nextLine(),
  90.                 outputMetric = scanner.nextLine();
  91.  
  92.         distance /=
  93.                 inputMetric.equals("m") ? 1000 :
  94.                         inputMetric.equals("cm") ? 100000 :
  95.                                 inputMetric.equals("mm") ? 1000000 :
  96.                                         inputMetric.equals("mi") ? 0.621371192 :
  97.                                                 inputMetric.equals("in") ? 39370.0787 :
  98.                                                         inputMetric.equals("ft") ? 3280.8399 :
  99.                                                                 inputMetric.equals("yd") ? 1093.6133 : 1;
  100.  
  101.         distance *=
  102.                 outputMetric.equals("m") ? 1000 :
  103.                         outputMetric.equals("cm") ? 100000 :
  104.                                 outputMetric.equals("mm") ? 1000000 :
  105.                                         outputMetric.equals("mi") ? 0.621371192 :
  106.                                                 outputMetric.equals("in") ? 39370.0787 :
  107.                                                         outputMetric.equals("ft") ? 3280.8399 :
  108.                                                                 outputMetric.equals("yd") ? 1093.6133 : 1;
  109.  
  110.         System.out.printf("%f", distance);
  111.     }
  112. }
  113.  
  114. Решение с колекция:
  115.  
  116. import java.util.Map;
  117. import java.util.Scanner;
  118.  
  119. public class Main {
  120.     public static void main(String[] args) {
  121.         Scanner scanner = new Scanner(System.in);
  122.         double distance = Double.parseDouble(scanner.nextLine());
  123.         String inputMetric = scanner.nextLine(),
  124.                 outputMetric = scanner.nextLine();
  125.  
  126.         Map<String, Double> metricsToKM = Map.of(
  127.                 "km", 1.0,
  128.                 "m", 1000.0,
  129.                 "cm", 100000.0,
  130.                 "mm", 1000000.0,
  131.                 "mi", 0.621371192,
  132.                 "in", 39370.0787,
  133.                 "ft", 3280.8399,
  134.                 "yd", 1093.6133
  135.         );
  136.  
  137.         System.out.printf("%f", distance / metricsToKM.get(inputMetric) * metricsToKM.get(outputMetric));
  138.     }
  139. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement