You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

79 lines
2.8 KiB

import java.util.Scanner;
/**
* 温度转换程序:实现摄氏温度与华氏温度的互相转换
* 支持控制台输入交互、命令行参数运行模式
*/
public class TemperatureConverter {
/**
* 摄氏温度 转 华氏温度
* @param celsius 输入的摄氏温度值
* @return 转换后的华氏温度值,公式:F = C × 1.8 + 32
*/
public static double celsiusToFahrenheit(double celsius) {
return celsius * 1.8 + 32;
}
/**
* 华氏温度 转 摄氏温度
* @param fahrenheit 输入的华氏温度值
* @return 转换后的摄氏温度值,公式:C = (F - 32) / 1.8
*/
public static double fahrenheitToCelsius(double fahrenheit) {
return (fahrenheit - 32) / 1.8;
}
/**
* 主方法:程序入口,支持两种运行模式
* 1. 无参数:控制台交互式输入
* 2. 带参数:命令行参数模式 java TemperatureConverter 数值 温度类型(C/F)
* @param args 命令行参数
*/
public static void main(String[] args) {
// 命令行参数模式
if (args.length == 2) {
try {
double temp = Double.parseDouble(args[0]);
String type = args[1].toUpperCase();
if (type.equals("C")) {
double res = celsiusToFahrenheit(temp);
System.out.printf("%.2f ℃ = %.2f ℉%n", temp, res);
} else if (type.equals("F")) {
double res = fahrenheitToCelsius(temp);
System.out.printf("%.2f ℉ = %.2f ℃%n", temp, res);
} else {
System.out.println("温度类型仅支持 C(摄氏) / F(华氏)");
}
} catch (Exception e) {
System.out.println("参数格式错误,示例:java TemperatureConverter 36.6 C");
}
return;
}
// 控制台交互模式
Scanner scanner = new Scanner(System.in);
System.out.println("===== 温度转换器 =====");
System.out.println("1. 摄氏温度转华氏温度");
System.out.println("2. 华氏温度转摄氏温度");
System.out.print("请选择功能(1/2):");
int choice = scanner.nextInt();
System.out.print("请输入温度数值:");
double value = scanner.nextDouble();
if (choice == 1) {
double result = celsiusToFahrenheit(value);
System.out.printf("转换结果:%.2f ℃ = %.2f ℉%n", value, result);
} else if (choice == 2) {
double result = fahrenheitToCelsius(value);
System.out.printf("转换结果:%.2f ℉ = %.2f ℃%n", value, result);
} else {
System.out.println("输入选项错误!");
}
scanner.close();
}
}