Java似乎无法正确打印表的一面

时间:2015-06-07 23:43:34

标签: java

我是Java的新手,我正在努力让某些代码正常运行。最近,我一直在使用我必须在控制台中设计的桌子时遇到问题。它的公斤转换为磅,磅转换为公斤。我的问题是,由于某种原因,当我去打印桌子时,它会贯穿并打印出公斤1,1,1,1,1,1,1,1,1到磅侧,而另一方面它操作完美。我的猜测是,它是同时运行两个循环,任何建议都有帮助,这已经困扰了我很长一段时间......我将列出下面的代码:

import java.text.DecimalFormat;

public class mian55 {

    public static void main(String[] args) {

        System.out.println("Kilograms   Pounds" + "     |     " + "Pounds   Kilolograms");

        for(int kilogram = 1; kilogram<200; kilogram = kilogram+2){         
            DecimalFormat decimal = new DecimalFormat("#.0");   
            for(int poundage = 20; poundage<516; poundage= poundage+5){
                DecimalFormat decim = new DecimalFormat("#.0");
                System.out.println(kilogram + "          " + decimal.format(kilogram * 2.2) +"         |       " + (poundage + "          " + decim.format(poundage / 2.2)));
            }
        }
    }
}

2 个答案:

答案 0 :(得分:2)

问题是外循环中的kilogram变量不会因内循环的每个循环而改变,导致第一列和第二列重复内循环运行的次数。尝试在每个循环上递增两个变量,就像这样(为简洁而缩短变量):

import java.text.DecimalFormat;

public class mian55 {

    public static void main(String[] args) {
        System.out.println(" Kilograms  Pounds   |   Pounds   Kilograms");

        int kgs = 1;
        int lbs = 20;
        for (; kgs < 200 && lbs < 516; kgs += 2, lbs += 5){
            DecimalFormat decimal = new DecimalFormat("#.0");   
            System.out.println(String.format(" %7d  %7s    | %7d  %7s",
                    kgs, decimal.format(kgs * 2.2), lbs, decimal.format(lbs / 2.2)));
        }
    }
}

答案 1 :(得分:0)

这是创建转换表的一种方法。

这是一个程序的结果。

Kilograms    Pounds     |     Pounds   Kilolograms
       10     22.00     |         10          4.55
       20     44.00     |         20          9.09
       30     66.00     |         30         13.64
       40     88.00     |         40         18.18
       50    110.00     |         50         22.73
       60    132.00     |         60         27.27
       70    154.00     |         70         31.82
       80    176.00     |         80         36.36
       90    198.00     |         90         40.91
      100    220.00     |        100         45.45
      110    242.00     |        110         50.00
      120    264.00     |        120         54.55
      130    286.00     |        130         59.09
      140    308.00     |        140         63.64
      150    330.00     |        150         68.18
      160    352.00     |        160         72.73
      170    374.00     |        170         77.27
      180    396.00     |        180         81.82
      190    418.00     |        190         86.36
      200    440.00     |        200         90.91

我在表格的左侧使用了相同的值。这允许我使用一个for循环。

Java类名以大写字母开头。

我使用了String的格式方法,而不是DecimalFormat,所以我可以调整间距以匹配标题。

这是代码。

package com.ggl.testing;

public class Conversions {

    public static void main(String[] args) {

        System.out.println("Kilograms    Pounds" + "     |     " + "Pounds   Kilolograms");

        for (int value = 10; value <= 200; value += 10) {
            float pounds = (float) value * 2.2F;
            float kilograms = (float) value / 2.2F;

            String v = String.format("%9d", value);
            String p = String.format("%10s", String.format("%5.2f", pounds));
            String k = String.format("%14s", String.format("%5.2f", kilograms));

            System.out.println(v + p + "     |  " + v + k);
        }
    }
}