-1

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

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

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

}

}

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

4

5 回答 5

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 英寸”。在这种情况下,您需要在 a 中构建字符串StringBuilder,然后在完成后返回结果。您是现有代码,使用StringBuilderbecome (但仍然没有所需的空格字符):

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
  }
}
于 2012-05-11T04:44:54.557 回答
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";
}

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

于 2013-02-07T04:53:15.660 回答
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 中,我们使用大写来表示它是classor并且使用小写来表示它是orinterface的第一个单词。methodvariable

于 2012-05-11T04:11:16.220 回答
0

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

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

于 2012-05-11T04:16:27.697 回答
0

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

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);
于 2012-05-11T08:32:12.137 回答