4. Metric_Convertion
Някой с по елегантно решение по задача 4 от упражненията?
import java.util.Scanner;
public class Metric_Converter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double n = Double.parseDouble(scanner.nextLine());
String input = scanner.nextLine();
String output = scanner.nextLine();
/* meters */
if (input.equals("m") & output.equals("mm")) {
System.out.printf("%.8f", (n * 1000));
} else if (input.equals("m") & output.equals("cm")) {
System.out.printf("%.8f", (n * 100));
} else if (input.equals("m") & output.equals("mi")) {
System.out.printf("%.8f", (n * 0.000621371192));
} else if (input.equals("m") & output.equals("in")) {
System.out.printf("%.8f", (n * 39.3700787));
} else if (input.equals("m") & output.equals("km")) {
System.out.printf("%.8f", (n * 0.001));
} else if (input.equals("m") & output.equals("ft")) {
System.out.printf("%.8f", (n * 3.2808399));
} else if (input.equals("m") & output.equals("yd")) {
System.out.printf("%.8f", (n * 1.0936133));
} else if (input.equals("m") & output.equals("m")) {
System.out.printf("%.8f", n);
}
/* milimiters */
if (input.equals("mm") & output.equals("m")) {
System.out.printf("%.8f", (n / 1000));
} else if (input.equals("mm") & output.equals("cm")) {
System.out.printf("%.8f", (n * 100) / 1000);
} else if (input.equals("mm") & output.equals("mi")) {
System.out.printf("%.8f", (n * 0.000621371192) / 1000);
} else if (input.equals("mm") & output.equals("in")) {
System.out.printf("%.8f", (n * 39.3700787) / 1000);
} else if (input.equals("mm") & output.equals("km")) {
System.out.printf("%.8f", (n * 0.001) / 1000);
} else if (input.equals("mm") & output.equals("ft")) {
System.out.printf("%.8f", (n * 3.2808399) / 1000);
} else if (input.equals("mm") & output.equals("yd")) {
System.out.printf("%.8f", (n * 1.0936133) / 1000);
} else if (input.equals("mm") & output.equals("mm")) {
System.out.printf("%.8f", n);
}
/* centimiters */
if (input.equals("cm") & output.equals("m")) {
System.out.printf("%.8f", (n / 100));
} else if (input.equals("cm") & output.equals("mm")) {
System.out.printf("%.8f", (n * 1000) / 100);
} else if (input.equals("cm") & output.equals("mi")) {
System.out.printf("%.8f", (n * 0.000621371192) / 100);
} else if (input.equals("cm") & output.equals("in")) {
System.out.printf("%.8f", (n * 39.3700787) / 100);
} else if (input.equals("cm") & output.equals("km")) {
System.out.printf("%.8f", (n * 0.001) / 100);
} else if (input.equals("cm") & output.equals("ft")) {
System.out.printf("%.8f", (n * 3.2808399) / 100);
} else if (input.equals("cm") & output.equals("yd")) {
System.out.printf("%.8f", (n * 1.0936133) / 100);
} else if (input.equals("cm") & output.equals("cm")) {
System.out.printf("%.8f", n);
}
/* mile */
if (input.equals("mi") & output.equals("m")) {
System.out.printf("%.8f", (n / 0.000621371192));
} else if (input.equals("mi") & output.equals("mm")) {
System.out.printf("%.8f", (n * 1000) / 0.000621371192);
} else if (input.equals("mi") & output.equals("cm")) {
System.out.printf("%.8f", (n * 100) / 0.000621371192);
} else if (input.equals("mi") & output.equals("in")) {
System.out.printf("%.8f", (n * 39.3700787) / 0.000621371192);
} else if (input.equals("mi") & output.equals("km")) {
System.out.printf("%.8f", (n * 0.001) / 0.000621371192);
} else if (input.equals("mi") & output.equals("ft")) {
System.out.printf("%.8f", (n * 3.2808399) / 0.000621371192);
} else if (input.equals("mi") & output.equals("yd")) {
System.out.printf("%.8f", (n * 1.0936133) / 0.000621371192);
} else if (input.equals("mi") & output.equals("mi")) {
System.out.printf("%.8f", n);
}
/* inch */
if (input.equals("in") & output.equals("m")) {
System.out.printf("%.8f", (n / 39.3700787));
} else if (input.equals("in") & output.equals("mm")) {
System.out.printf("%.8f", (n * 1000) / 39.3700787);
} else if (input.equals("in") & output.equals("cm")) {
System.out.printf("%.8f", (n * 100) / 39.3700787);
} else if (input.equals("in") & output.equals("mi")) {
System.out.printf("%.8f", (n * 0.000621371192) / 39.3700787);
} else if (input.equals("in") & output.equals("km")) {
System.out.printf("%.8f", (n * 0.001) / 39.3700787);
} else if (input.equals("in") & output.equals("ft")) {
System.out.printf("%.8f", (n * 3.2808399) / 39.3700787);
} else if (input.equals("in") & output.equals("yd")) {
System.out.printf("%.8f", (n * 1.0936133) / 39.3700787);
} else if (input.equals("in") & output.equals("in")) {
System.out.printf("%.8f", n);
}
/* kilometer */
if (input.equals("km") & output.equals("m")) {
System.out.printf("%.8f", (n / 0.001));
} else if (input.equals("km") & output.equals("mm")) {
System.out.printf("%.8f", (n * 1000) / 0.001);
} else if (input.equals("km") & output.equals("cm")) {
System.out.printf("%.8f", (n * 100) / 0.001);
} else if (input.equals("km") & output.equals("mi")) {
System.out.printf("%.8f", (n * 0.000621371192) / 0.001);
} else if (input.equals("km") & output.equals("in")) {
System.out.printf("%.8f", (n * 39.3700787) / 0.001);
} else if (input.equals("km") & output.equals("ft")) {
System.out.printf("%.8f", (n * 3.2808399) / 0.001);
} else if (input.equals("km") & output.equals("yd")) {
System.out.printf("%.8f", (n * 1.0936133) / 0.001);
} else if (input.equals("km") & output.equals("km")) {
System.out.printf("%.8f", n);
}
/* feet */
if (input.equals("ft") & output.equals("m")) {
System.out.printf("%.8f", (n / 3.2808399));
} else if (input.equals("ft") & output.equals("mm")) {
System.out.printf("%.8f", (n * 1000) / 3.2808399);
} else if (input.equals("ft") & output.equals("cm")) {
System.out.printf("%.8f", (n * 100) / 3.2808399);
} else if (input.equals("ft") & output.equals("mi")) {
System.out.printf("%.8f", (n * 0.000621371192) / 3.2808399);
} else if (input.equals("ft") & output.equals("in")) {
System.out.printf("%.8f", (n * 39.3700787) / 3.2808399);
} else if (input.equals("ft") & output.equals("km")) {
System.out.printf("%.8f", (n * 0.001) / 3.2808399);
} else if (input.equals("ft") & output.equals("yd")) {
System.out.printf("%.8f", (n * 1.0936133) / 3.2808399);
} else if (input.equals("ft") & output.equals("ft")) {
System.out.printf("%.8f", n);
}
/* yard */
if (input.equals("yd") & output.equals("m")) {
System.out.printf("%.8f", (n / 1.0936133));
} else if (input.equals("yd") & output.equals("mm")) {
System.out.printf("%.8f", (n * 1000) / 1.0936133);
} else if (input.equals("yd") & output.equals("cm")) {
System.out.printf("%.8f", (n * 100) / 1.0936133);
} else if (input.equals("yd") & output.equals("mi")) {
System.out.printf("%.8f", (n * 0.000621371192) / 1.0936133);
} else if (input.equals("yd") & output.equals("in")) {
System.out.printf("%.8f", (n * 39.3700787) / 1.0936133);
} else if (input.equals("yd") & output.equals("km")) {
System.out.printf("%.8f", (n * 0.001) / 1.0936133);
} else if (input.equals("yd") & output.equals("ft")) {
System.out.printf("%.8f", (n * 3.2808399) / 1.0936133);
} else if (input.equals("yd") & output.equals("yd")) {
System.out.printf("%.8f", n);
}
}
}