返回值并排

问题描述 投票:0回答:1

我被分配了一个温度转换作业,要求使用两个静态方法和一个 System.out.print 语句将值彼此相邻地打印。作为参考,我添加了预期结果的图像。

Image

这是我到目前为止所写的所有内容:

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);
    }

最终结果一个循环一个循环地打印,我似乎找不到任何其他不会以错误结束的方法。

我正在努力实现如上图所示的预期结果。到目前为止,我可以打印这些值,只是不能彼此相邻。

java eclipse loops methods
1个回答
0
投票

在每一行中,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;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.