gpt4 book ai didi

java - 使用 if 语句转换单位?

转载 作者:行者123 更新时间:2023-12-01 18:30:15 25 4
gpt4 key购买 nike

我必须编写一个程序来在英尺、英里、毫米、厘米、米、公里等线性单位之间进行转换。我知道有更简单更好的方法可以做到这一点。我认为我们只是想完全理解 if else if 语句。但这是我到目前为止所拥有的。我只是想弄清楚我是否走在正确的道路上。我尝试写出一些伪代码,但似乎发生了很多事情,所以我发现它有点令人不知所措。接下来,我将添加一个方法,将 form in 或 mm 转换为用户选择的任何内容。

当我测试程序时,我得到:UnitConversion@76c5a2f7(编辑:此问题已修复)好的,我做了建议的更改,这使得程序的第一部分能够正常运行。我现在添加了第二种方法来从英寸/毫米转换为其他测量值。我遇到了问题,但我解决了。

这是我的主要方法;

public class LinearConversion 
{
public static void main(String[] args)
{
UnitConversion newConvert = new UnitConversion("km", "m", 100);

System.out.println(newConvert);
}
}

有什么建议吗?对于执行此类程序,我缺少或不理解什么?

    public class UnitConversion 
{

private String input;
private String output;
private double value;
private double temp;

private double in, ft, mi, mm, cm, m, km;
private final double inch_feet = 12;
private final double inch_miles = 63360;


private final double inch_millimeters = 25.4;
private final double inch_centimeters = 2.54;
private final double inch_meters = 0.0254;
private final double inch_kilometers = 0.0000254;

private final double millimeters_inch = 0.0393701;
private final double millimeters_feet = 0.00328084;
private final double millimeters_miles = 0.000000622;

private final double millimeter_centimeters = 10;
private final double millimeter_meters = 1000;
private final double millimeter_kilometers = 1000000;

public UnitConversion(String in, String out, double val)
{
input = in;
output = out;
value = val;
}

public String toString()
{
if (input.equals("mi"))
{
in = value * inch_miles;
input = "in";
}

else if (input.equals("ft"))
{
in = value * inch_feet;
input = "in";
}

else
{
in = value;
input = "in";
}

if (input.equals("km"))
{
mm = value * millimeter_kilometers;
input = "mm";
}

else if (input.equals("m"))
{
mm = value * millimeter_meters;
input = "mm";
}

else if (input.equals("cm"))
{
mm = value * millimeter_centimeters;
input = "mm";
}

else
{
mm = value;
input = "mm";
}

return value + input + " " + output;
}

public double getUnit()
{
if (input.equals("in"))
{
if (output.equals("ft"))
{
ft = in * inch_feet;
System.out.println(ft + "ft");
}
else if (output.equals("mi"))
{
mi = in * inch_miles;
System.out.println(mi + "mi");
}
else if (output.equals("mm"))
{
mm = in * inch_millimeters;
System.out.println(mm + "mm");
}
else if (output.equals("cm"))
{
cm = in * inch_centimeters;
System.out.println(cm + "cm");
}
else if (output.equals("m"))
{
m = in * inch_meters;
System.out.println(m + "m");
}
else if (output.equals("km"))
{
km = in * inch_kilometers;
System.out.println(km + "km");
}
else
{
System.out.println(in + "in");
}
}
else
{
if (output.equals("cm"))
{
cm = mm * millimeter_centimeters;
System.out.println(cm + "cm");
}
else if (output.equals("m"))
{
m = mm * millimeter_meters;
System.out.println(m + "m");
}
else if (output.equals("km"))
{
km = mm * millimeter_kilometers;
System.out.println(km + "km");
}
else if (output.equals("in"))
{
in = mm * millimeters_inch;
System.out.println(in + "in");
}
else if (output.equals("ft"))
{
ft = mm * millimeters_feet;
System.out.println(ft + "ft");
}
else if (output.equals("mi"))
{
mi = mm * millimeters_miles;
System.out.println(mi + "mi");
}
else
{
System.out.println(mm + "mm");
}
}
}

最佳答案

基本上,您需要/想要为 System.out.println 提供一个 String 参数才能显示它。

因此,当您使用带有 Object(不是 String)作为参数的 System.out.println 时,Java 实际上输出该对象上的 toString 方法的结果。

如果您没有覆盖它,则使用toStringObject类实现:这就是为您提供当前输出的原因:UnitConversion@76c5a2f7

要了解有关此默认 toString 实现如何生成该 String 的更多信息,您可以引用 the javadoc entry for Object#toString .

关于java - 使用 if 语句转换单位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24521937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com