在Java中将英寸转换为英尺英寸并输出为return语句

时间:2012-05-11 04:06:51

标签: java if-statement return

所以我正在制作一个方法,将高度转换为字符串“5英尺8英寸” 老师给了我们这个方法所以它将成为一个不显示的回归

这是我到目前为止所做的但是我确定你可以在回报中写什么,因为它只需要一种类型

  public String convertHeightToFeetInches(int newHeight)
{
    int leftOver = newHeight % IN_PER_FOOT;
    if(newHeight < (IN_PER_FOOT * 2)){
        return "1 foot" + leftOver + "inches";

}

}

每次我运行与此类似的东西时,我都会收到返回语句错误。

5 个答案:

答案 0 :(得分:1)

鉴于这是您的代码:

public String convertHeightToFeetInches()
{
  int leftOver = newHeight % IN_PER_FOOT;
  if(newHeight < (IN_PER_FOOT * 2)){
    System.out.println("1 foot" + leftOver + "inches");
  }
}

要返回字符串,只需执行以下操作:

public String convertHeightToFeetInches()
{
  int leftOver = newHeight % IN_PER_FOOT;
  if(newHeight < (IN_PER_FOOT * 2))
  {
    return "1 foot" + leftOver + "inches";
  }
}

但请注意,这不会在“1英尺”和“X英寸”之间放置任何空格。你会得到这个:

  

1英尺3英寸

您需要添加一些空格。当然,为了额外的功劳,也许你希望它只是说“1英尺”而不是“1英尺0英寸”,当剩余部分为零时。在这种情况下,您需要在StringBuilder中构建字符串,然后在完成后返回结果。您是现有代码,使用StringBuilder变为(但仍然没有所需的空格字符):

public String convertHeightToFeetInches()
{
  StringBuilder buff = new StringBuilder();
  int leftOver = newHeight % IN_PER_FOOT;

  if(newHeight < (IN_PER_FOOT * 2))
  {
    buff.append("1 foot");
    buff.append(leftOver);
    buff.append(inches);
  }

  return buff.toString();
}

我现在就把你留在那里......看你怎么走......


编辑:

  

我感到沮丧,因为我所做的每一种方法都会收到返回错误

在您目前的代码中,您有两个可能的执行路径,但只有一个路径返回一个值。

public String convertHeightToFeetInches()
{
  int leftOver = newHeight % IN_PER_FOOT;
  if(newHeight < (IN_PER_FOOT * 2))
  {
    return "1 foot" + leftOver + "inches";    // we return a value - good
  }
  else                                        // there is also this execution path ...
  {
                                              // ... and you don't return anything - bad
  }
}

答案 1 :(得分:0)

String返回类型更改为int返回类型,并且不要忘记在方法结束时返回值。

public int convert heightToFeetInches() {
    int leftOver = (heightInInches % 12);
    return leftOver;
}

或者,如果你想像String那样返回,请执行以下操作:

public String convert heightToFeetInches() {
    int leftOver = (heightInInches % 12);

    return String.valueOf(leftOver);
}

OOT:你以前是C / C ++ / C#程序员吗?如果是,请确保所有方法和变量为第一个单词heightToFeetInches()制作小写,以免使用HeightToFeetInches()以防止误解其他程序员。因为在Java中我们使用大写来表示它是classinterface而小写的第一个单词是methodvariable

答案 2 :(得分:0)

想想如何在不返回的情况下创作字符串 - 只是一个普通的print语句。然后,不是打印它,而是返回String。

您可以稍后打印返回的结果;例如System.out.println(convertFeetToHeightInches("68 inches"));

答案 3 :(得分:0)

只需创建一个String对象并为其指定一个空值。稍后,您可以将结果存储在此对象中并返回 ,如下所示:

public String convertHeightToFeetInches(int newHeight) {    

    final int IN_PER_FOOT = 12;
    int leftOver = newHeight % IN_PER_FOOT;
    String result = "";
    if(newHeight < (IN_PER_FOOT * 2)){
        result = "1 foot " + leftOver + " inches";

    } else {


        } return result;

}

你可以这样调用这个方法:

String conversion = convertHeightToFeetInches(5);

答案 4 :(得分:0)

//在您的实例变量中

public static final int IN_PER_FOOT = 12;
private int height;

//你的方法

public String convertheightToFeetInches() 
{
    int leftOver = (height %= IN_PER_FOOT);
    int newHeight = (height % IN_PER_FOOT);
    return newHeight + "Foot" + leftOver + "Inches";
}

//我的高度方法没有显示,但它很简单,你应该已经得到那个部分