-1

高さを変換して文字列「5フィート8インチ」として返すメソッドを作成し、先生がこのメソッドを提供してくれたので、表示されずに返されます

これは私がこれまでに持っているものですが、1つのタイプしか必要としないため、リターンに何を書くことができるか確信しています

  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 フィート 0 インチ」ではなく、単純に「1 フィート」と表示することもできます。その場合、 で文字列を構築し、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();
}

この時点であなたをそこに残します...様子を見てください...


編集:

私が行うすべてのメソッドがリターンステートメントエラーを取得しているため、私はイライラしています

現在、コードには 2 つの実行パスがありますが、値を返すパスは 1 つだけです。

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

Change the String return type to int return type and don't forget to return value in the end of the method.

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

Or if you want to return as String do as like this one:

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

    return String.valueOf(leftOver);
}

OOT: Are you C/C++/C# Programmer before? If yes, please make sure all your method and variable to make lower-case for the first word heightToFeetInches() don't use HeightToFeetInches() to prevent misunderstanding to other programmers. Because in Java we use upper-case to said that it is class or interface and lower-case for the first word to said it is method or variable.

于 2012-05-11T04:11:16.220 に答える
0

Think of how you would author the string without returning - just a normal print statement. Then, instead of printing it, return that String.

You can print the returned result from it later; e.g. System.out.println(convertFeetToHeightInches("68 inches"));

于 2012-05-11T04:16:27.697 に答える
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 オブジェクトを作成し、null 値を割り当てるだけです。後で、このオブジェクト内に結果を保存して、次のように返すことができます。

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 に答える