3

void を返す次のメソッドがあり、これも void を返す別のメソッドで使用する必要があります。次のことはできますか?

public void doSomething(){}

public void myMethod()
{
    return doSomething();
}

コメントありがとうございます。具体的に教えてください。

私はdoSomething何かが起こったときだけ、そうでなければ他のことをします

public void doSomething(){}

public void myMethod()
{
    for(...)
        if(somethingHappens)
        {
            doSomething();
            return;
        }

    doOtherStuff();
}

上記のコードの代わりにreturn doSomething();、if ステートメント内に記述できますか?

4

5 に答える 5

14

いいえ、これを行うだけです:

public void doSomething() { }

public void myMethod()
{
    doSomething();
}

または2番目のケースでは:

public void doSomething() { }

public void myMethod()
{
    // ...
    if (somethingHappens)
    {
        doSomething();
        return;
    }
    // ...
}

「void を返す」とは、何も返さないことを意味します。myMethodの本体から「ジャンプ」したい場合は、return;コンパイラは書き込みを許可しませんreturn void;(「式の不正な開始」) またはreturn doSomething();(「結果の型が void であるメソッドから値を返すことはできません」) を使用します。メソッド呼び出しの "void" または "void result" を返すのは理にかなっているように思えますが、そのようなコードは誤解を招く可能性があります。のようなものを読んだほとんどのプログラマーは、返すものreturn doSomething();があると思うでしょう。

于 2012-06-11T23:46:36.837 に答える
5

void 関数は、そのままでは何も返さない/返すことができません。関数を呼び出すだけです。

于 2012-06-11T23:47:35.580 に答える
2

いいえ、Java void 関数では戻り値は不要です。代わりに、次のようにします。

public void myMethod(){
    doSomething();
}

必要に応じて doSomething() の後に return を置くこともできますが、私が言ったように、それは不要です。

于 2012-06-11T23:48:02.750 に答える
0

他の人が指摘しているように、doSoemthingを使用する必要がありますまたは

public (insert data type like int, double, string, etc) myMethod()
{
     return doSomething();
}

何かをするとintが返されます

// if you wanted to take 2 numbers and add them

public void myMethod()
{
    valueOfX+Y = doSomething();
}

public int doSomething()
{
    x = 2;
    y = 2;
    return X+Y;
}

それがクリアされることを願っています

于 2012-06-12T00:15:59.710 に答える
0

もしも

  • 状態(somethingHappens)は実際に何をしたかによって異なりdoSomething()ます
  • doSomething()変更できるメソッドです

boolean次に、呼び出されたメソッドにそれが発生したかどうかを伝える(または適切なタイプの)値を返すようにすることを検討する必要があります。

コードは次のようになります。

public boolean doSomething() {
    // internal working
    if (internalCondition) {
         // something done here
         return true;
    }
    // not done ;
    return false;
}

public void myMethod()
{
    for(...)
        if (doSomething())
        {
            return;
        }
    // didn't hit 'doSomething() == true'
    doOtherStuff();
}
于 2015-07-18T07:54:43.780 に答える