0

返された値を変数に格納せずに値を返す関数を呼び出しても大丈夫ですか?サンプルコードは次のとおりです。

class Test
{ 
  int days[] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};

  boolean validity()
  { 
     //some code
     isLeap();
  }

  boolean isLeap(int y)
  {
       if(y%400==0 || (y%100!=0 && y%4==0))
       {
          days[1] = 29;             
          return true; 
       }
       else
       {
          days[1] = 28;         
          return false;
       }
  }
}
4

3 に答える 3

4

はい、許可されています。コンパイラはエラーをスローしません。しかし、あなたの場合、不要な何かのためにプロセッサ時間を使い果たすことは意味がありません。

于 2013-02-10T19:10:21.423 に答える
0

はい、許可されています

あなたのコード例では、それは良いコーディングスタイルではありません... isLeap(xxx)と呼ばれる関数がデータを更新しています。このような関数で更新されるデータの副作用をほとんどの人が期待しているとは思いません。
意図しない副作用は、将来的にいくつかの厄介なバグにつながる可能性があります。

于 2013-02-10T21:08:39.373 に答える
0

はい、関数を呼び出すことはできますが、その関数による戻り値をJavaに保存することはできません。ただし、処理時間が不必要に消費されます。なぜなら、メソッドによって何らかの処理を実行し、最終的な出力を返すことを最初に宣言することによって、達成したいことを達成できないからです。保存していない場合は役に立ちません。

于 2020-06-28T10:39:47.673 に答える