JAVA经典百题之温度转换

题目:输入一个浮点数f, 表示华氏温度, 输出对应的摄氏温度c , c=5/9*(f-32)

程序分析

要将华氏温度转换为摄氏温度,可以使用公式c = 5/9 * (f - 32),其中c表示摄氏温度,f表示华氏温度。我们需要实现一个程序,接受用户输入的华氏温度,然后计算并输出对应的摄氏温度。

以下是三种不同的方法来实现这个转换:

方法一:使用标准输入输出

解题思路:

  1. 使用标准输入读取用户输入的浮点数f。
  2. 使用给定的公式计算摄氏温度c。
  3. 使用标准输出打印计算结果c。

实现代码:

import java.util.Scanner;

public class FahrenheitToCelsius {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Enter the temperature in Fahrenheit: ");
        double fahrenheit = scanner.nextDouble();

        double celsius = (5.0 / 9.0) * (fahrenheit - 32);

        System.out.println("Temperature in Celsius: " + celsius);
    }
}

优点:

  • 简单,不需要额外的复杂逻辑。
  • 使用标准输入输出,易于理解和实现。

缺点:

  • 不适用于直接嵌入到其他代码中。

方法二:封装为函数

解题思路:

  1. 创建一个函数,该函数接受一个浮点数f作为参数,并返回对应的摄氏温度c。
  2. 在函数中使用给定的公式计算摄氏温度c。
  3. 在主程序中调用该函数,将用户输入的fahrenheit传递给函数,并打印计算结果。

实现代码:

import java.util.Scanner;

public class FahrenheitToCelsius {
    public static double convertToFahrenheit(double fahrenheit) {
        return (5.0 / 9.0) * (fahrenheit - 32);
    }

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.print("Enter the temperature in Fahrenheit: ");
        double fahrenheit = scanner.nextDouble();

        double celsius = convertToFahrenheit(fahrenheit);

        System.out.println("Temperature in Celsius: " + celsius);
    }
}

优点:

  • 封装为函数,可以在其他地方重复使用。
  • 代码更模块化和可维护。

缺点:

  • 需要额外的函数定义和调用。

方法三:命令行参数

解题思路:

  1. 在程序中使用命令行参数,将用户输入的浮点数fahrenheit作为参数传递给程序。
  2. 使用给定的公式计算摄氏温度c。
  3. 使用标准输出打印计算结果c。

实现代码:

public class FahrenheitToCelsius {
    public static void main(String[] args) {
        if (args.length != 1) {
            System.err.println("Usage: java FahrenheitToCelsius ");
            System.exit(1);
        }

        double fahrenheit = Double.parseDouble(args[0]);

        double celsius = (5.0 / 9.0) * (fahrenheit - 32);

        System.out.println("Temperature in Celsius: " + celsius);
    }
}

优点:

  • 可以从命令行传递参数,适用于批处理和自动化脚本。
  • 代码更通用,可在不同上下文中使用。

缺点:

  • 用户需要在命令行中提供参数,可能不够用户友好。

总结

推荐使用方法一或方法二,具体取决于使用场景。方法一非常简单,适用于交互式的命令行应用,但不适合嵌入到其他代码中。方法二更具通用性,可以封装为函数,以便在其他代码中重复使用。方法三适用于需要批处理或自动化脚本的情况,但需要用户手动提供命令行参数。选择方法应根据具体需求和用例来决定。

你可能感兴趣的:(JAVA经典百题,java,开发语言)