0

整数を順番に並べ替える Java コードが必要です。

これは私のコードの一部ですが、コンパイルしようとすると、return ステートメントが欠落していると表示されます。これを修正する方法について混乱しています。

 public double getSmallest()
   {

      if (num1 <= num2 && num1 <= num3)

          return num1;


      if (num2 <= num1 && num2 <= num1)

          return num2;


      if (num3 <= num1 && num3 <= num2)

          return num3;


    }
4

4 に答える 4

0

メッセージに関してreturn ステートメントがありません。これは、次の状況にあるためです。

条件が満たされていれば、3つのどれにも当てはまりません。

次のコードを試してください。

    public double getSmallest() {

       return num1 < num2 ? (num1 < num3 ? num1 : num3) : (num2 < num3 ? num2
            : num3);
    }

また

    public double getSmallest() {

       if (num1 < num2) {
           return num1 < num3 ? num1 : num3;
       } else {
           return num2 < num3 ? num2 : num3;
       }
    }
于 2013-11-14T02:25:52.427 に答える
0

else ifチェーンを使用しているのではなくif、コンパイラに従って 3 つの分離された s を使用しているため、発生する可能性があるのc1は、c2c3false

if (c1)
  return ..; << not executed
if (c2)
  return ..; << not executed
if (c3)
  return ..; << not executed
<< code flow arrives here but method ends: no return value

まず第一に、これらは相互に排他的な状況であるため、以下を使用できますelse if

if (c1)
  return ..;
else if (c2)
  return ..;
else if (c3)
  return ..;
else
  return 0; // will never be called

ただし、最後のケースは決して選択されないため、少なくとも 1 つの条件が true になるため、次のように簡単に実行できます。

if (c1)
  return ..;
else if (c2)
  return ..;
else
  return ..;
于 2013-11-14T02:20:51.397 に答える