C ++에서 void 함수를 어떻게 종료합니까?


158

void 함수 인 경우 값을 반환하지 않고 어떻게 함수에서 조기에 종료 할 수 있습니까? 특정 조건이 true 인 경우 코드를 실행할 필요가없는 void 메소드가 있습니다. 실제로 값을 실제로 반환하기 위해 메소드를 변경하고 싶지는 않습니다.


9
이것은 매우 간단한 질문 임에도 불구하고 첫 C 프로그램을 작성할 때 같은 문제가 있었기 때문에
찬성했습니다

11
@itsbunnies : 다른 곳에서 언급했듯이 너무 간단하게 프로그래밍 질문이 없습니다. 당신이 그것에 문제가 있다면, 과거에 다른 사람이 있고 미래에 다른 사람도 마찬가지입니다.
Bill the Lizard

@BilltheLizard : 무엇을 첫 번째 프로그램에 대해 지금까지 그 문제를했다? 누가에서 그 문제를 가지고 자신의 과거를? ;-)
flarn2006

1
그냥이 질문을 스스로했다 :)
moldovean

구조적 프로그래밍 원칙 (1 개의 진입 점, 1 개의 출구) 인 하단에서 항상 리턴하도록 함수를 다시 작성할 수 있습니다.
Malcolm McLean

답변:


195

반환 진술을 사용하십시오!

return;

또는

if (condition) return;

메소드가를 반환하면 값을 지정할 필요가 없으며 값을 지정할 수 없습니다 void.


2
더 중요한 것은 : 메소드가 void를 반환하는 경우 반환 값을 지정해서는 안됩니다.
Jonathan Leffler

아하, 그래서 우리가 return을 쓸 때; 아무것도 돌려주지 않는다는 것은 빈 공간 자체를 돌려주는 것을 의미합니까? void는 어쨌든 아무것도 의미하지 않습니다! 흠.
quantum231

@ quantum321 반환 값은 기술적으로 정의되어 있지 않으며 무효가 아니라 "void"로 생각하면 유용합니다.
Dr. Person Person II

@ Dr.PersonPersonII는 '메서드가 "void"를 반환하면 메소드로 반환되는 메소드의 반환 유형을 순전히 구문 적으로 보여줍니다 void. 기술적으로이 메소드는 아무것도 리턴하지 않습니다. undefined를 반환하는 것과 다릅니다.
Mehrdad Afshari

2
실제로 당신도 쓸 수 return void()있습니다 :)
궤도에서 가벼움 경주

12

이런 말인가요?

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

10
void foo() {
  /* do some stuff */
  if (!condition) {
    return;
  }
}

다른 함수에서와 마찬가지로 return 키워드를 사용할 수 있습니다.


-1

나는 질문에 이미 답변되어 있고 return진술을 사용 하면 일 을한다는 것을 알고 있습니다. 그러나 대안으로 조건 의 else블록에 나머지 기능을 포함시킬 수도 있습니다 if.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.