我被分配了一个温度转换作业,要求使用两个静态方法和一个 System.out.print 语句将值彼此相邻地打印。作为参考,我添加了预期结果的图像。
这是我到目前为止所写的所有内容:
package main;
public class TempConversion {
static double cel;
static double fah;
public static void convCel (double cel) {
String verticle;
double temp;
cel = -40;
verticle = "|";
System.out.println("\tTemperature \n\t (degrees) ");
System.out.print(" F \t\t C");
System.out.println();
for (cel = -40; cel <= 455; cel += 5) {
if (cel <= 455) {
System.out.printf("%7.3f ", cel);
if (cel <= 455) {
temp = (cel - 32 ) * 5 / 9;
System.out.printf("\t %7.3f ", temp);
System.out.print(verticle);
}
}
System.out.println();
}
}
public static void convFah (double fah) {
double temp;
fah = -40;
System.out.println("\tTemperature \n\t (degrees) ");
System.out.print(" C \t\t F");
System.out.println();
for (fah = -40; fah <= 455; fah += 5) {
if (fah <= 455) {
System.out.printf("%7.3f ", fah);
if (fah <= 455) {
temp = (fah * 9 / 5) + 32;
System.out.printf("\t %7.3f ", temp);
}
}
System.out.println();
}
}
public static void main (String[] args) {
System.out.print(" Temperature Conversion Table \n");
System.out.println();
convCel(cel);
convFah(fah);
}
最终结果一个循环一个循环地打印,我似乎找不到任何其他不会以错误结束的方法。
我正在努力实现如上图所示的预期结果。到目前为止,我可以打印这些值,只是不能彼此相邻。
在每一行中,C 和 F 都有相同的“源”值。我将循环遍历这些值,并在同一行中打印两个转换 - 一次从 C 到 F,一次从 F 到 C。从那里开始,只是对空间进行了一些混乱,以使它们恰到好处:
public class TempConversion {
public static void main(String[] args) {
System.out.println(" Temperature\t | \t Temperature");
System.out.println(" (degrees)\t | \t (degrees)");
System.out.println(" F C \t|\t C F");
for (double source = -40.0; source <= 65.0; source += 5.0) {
double celcius = fahrenheitToCelsius(source);
double fahrenheit = celsiusToFahrenheit(source);
System.out.printf
("%7.3f %7.3f\t | \t %7.3f %7.3f%n",
source, celcius, source, fahrenheit);
}
}
private static double fahrenheitToCelsius(double fahrenheit) {
return (fahrenheit - 32) * 5 / 9;
}
private static double celsiusToFahrenheit(double celsius) {
return celsius * 9 / 5 + 32;
}
}