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.
46 lines
2.0 KiB
46 lines
2.0 KiB
import java.util.Scanner;//导入输入工具
|
|
public class Tempconvert {//类名与文件名相等
|
|
public static float c2f(float c) {
|
|
return c * 9 / 5 + 32;//定义摄氏度转华氏度函数
|
|
}
|
|
|
|
public static float f2c(float f) {
|
|
return (f - 32) * 5 / 9;//定义华氏度转摄氏度函数
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
Scanner sc = new Scanner(System.in);//打开输入通道(固定)
|
|
System.out.println("请输入要转换的温度与单位(例如 36.6 C 或 97 F)");//写提示语
|
|
String input = sc.nextLine(); // 接收输入
|
|
sc.close();
|
|
if (input.isEmpty()) {//处理空输入
|
|
System.out.println("输入为空,程序退出。");
|
|
return;
|
|
}//
|
|
String[] parts = input.split(" ");//将输入的字符串按空格分割成字符串数组
|
|
float wd;
|
|
String dw;
|
|
try {
|
|
wd = Float.parseFloat(parts[0]);//将数组第一个元素(数值字符串)转为 float,赋值给 wd
|
|
dw = parts.length > 1 ? parts[1].toUpperCase() : "C";//
|
|
} catch (Exception e) {//如果数组长度 > 1,则取第二个元素并转大写赋值给 dw;否则默认单位为 "C"
|
|
System.out.println("输入解析失败,请按示例输入数值与单位,例如:36.6 C");//
|
|
return;
|
|
}
|
|
|
|
float result;//定义两个变量:result 用于保存转换后的温度值。
|
|
String resultUnit;//resultUnit 用于保存转换后的单位
|
|
if (dw.equals("C")) {//判断单位 dw 是否以 "C" 开头
|
|
result = c2f(wd);
|
|
resultUnit = "F";
|
|
} else if (dw.equals("F")) {//若单位是“F”
|
|
result = f2c(wd);
|
|
resultUnit = "C";
|
|
} else {//未知单位
|
|
System.out.println("未知单位,请使用 C 或 F");
|
|
return;
|
|
}
|
|
// 修正:使用 printf 格式化输出
|
|
System.out.printf("转换结果:%.1f %s%n", result, resultUnit);
|
|
}
|
|
}
|