C ++でvoid関数をどのように終了しますか?


158

関数がvoid関数の場合、値を返さずに関数を途中で終了するにはどうすればよいですか?特定の条件がtrueの場合にコードを実行する必要がないvoidメソッドがあります。実際に値を返すためにメソッドを変更する必要は本当にありません。


9
これは非常に単純な質問ですが、最初のCプログラムを作成したときに同じ問題があったので、私は賛成しました:)
rmeador

11
@itsbunnies:他で言及されているように、SOで尋ねるには単純すぎるプログラミングの質問はありません。問題が発生した場合は、過去の誰かがそうであり、将来の誰かもそうです。
リザードに請求する

@BilltheLizard:どのような最初のプログラムについて、これまでその問題を持っていましたか?彼の過去に誰がその問題を抱えていましか?;-)
flarn2006 2013年

1
ちょうど私自身にこの質問がありました:)
モルドバ語

あなたは常に、常に構造化プログラミングの原則(エントリの一点、終了の一点)である下、で返すに関数を書き換えることができます
マルコム・マクリーン

回答:


195

returnステートメントを使用してください!

return;

または

if (condition) return;

メソッドがを返す場合、値を指定する必要はありません(そして指定することはできません)void


2
さらに重要な点として、メソッドがvoidを返す場合は、戻り値を指定してはなりません。
ジョナサン・レフラー

ああ、だから私たちがリターンを書くとき; 何も返さないということは、ボイド自体を返すということですか?voidはとにかく何も意味しません!! うーん、もうわかった。
Quantum231

@ quantum321戻り値は技術的に未定義であり、無効ではないと思いますが、「無効」と考えると便利です。
パーソンパーソンII

@ Dr.PersonPersonIIによって、「メソッドが「void」を返す場合」は、として宣言されたメソッドの戻り値の型の純粋な構文ビューを意味しましたvoid。技術的には、メソッドは何も返しません。これは未定義を返すこととは異なります。
Mehrdad Afshari

2
実際には、次のように書くことreturn void()もできます:)
オービットのライトネスレース

12

あなたはこのような意味ですか?

void foo ( int i ) {
    if ( i < 0 ) return; // do nothing
    // do something
}


-1

私は質問がすでに答えられていることを知っており、returnステートメントを使用して仕事をします。しかし、代わりに、関数の残りを条件のelseブロックに含めることもできifます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.