คุณจะออกจากฟังก์ชัน void ใน C ++ ได้อย่างไร


158

คุณจะออกจากฟังก์ชั่นก่อนกำหนดได้อย่างไรโดยไม่คืนค่าถ้าเป็นโมฆะ? ฉันมีวิธีการโมฆะที่ไม่จำเป็นต้องเรียกใช้รหัสถ้าเงื่อนไขบางอย่างเป็นจริง ฉันไม่ต้องการเปลี่ยนวิธีการคืนค่าจริง ๆ


9
แม้จะมีที่นี่เป็นคำถามง่ายจริงๆผม upvoted เพราะผมมีปัญหาเดียวกันเมื่อผมเขียนโปรแกรม C ครั้งแรกของฉัน :)
rmeador

11
@itsbunnies: ดังที่กล่าวไว้ที่อื่นไม่มีคำถามการเขียนโปรแกรมง่ายเกินไปที่จะถามเกี่ยวกับดังนั้น หากคุณมีปัญหากับมันมีคนอื่นในอดีตและจะมีคนอื่นในอนาคต
Bill the Lizard

@BilltheLizard: สิ่งที่เกี่ยวกับโปรแกรมแรกที่เคยมีปัญหาที่? ใครมีปัญหาในอดีตของเขา ;-)
flarn2006

1
เพียงแค่มีคำถามนี้กับตัวเอง :)
moldovean

หมายเหตุคุณสามารถเขียนฟังก์ชั่นใหม่เพื่อกลับไปที่ด้านล่างซึ่งเป็นหลักการเขียนโปรแกรมที่มีโครงสร้าง (หนึ่งจุดเข้าหนึ่งจุดออก)
Malcolm McLean

คำตอบ:


195

ใช้คำสั่งส่งคืน!

return;

หรือ

if (condition) return;

คุณไม่จำเป็นต้องไปที่ (และไม่สามารถ) ระบุค่าใด ๆ voidหากผลตอบแทนที่วิธีการของคุณ


2
ยิ่งกว่านั้นถึงจุด: คุณจะต้องไม่ระบุค่าตอบแทนใด ๆ หากวิธีการของคุณกลับเป็นโมฆะ
Jonathan Leffler

อ้าดังนั้นเมื่อเราเขียนผลตอบแทน การไม่คืนสิ่งใดหมายถึงการคืนค่าโมฆะเองใช่มั้ย ถือเป็นโมฆะไม่มีความหมายอะไรเลย !! อืมฉันเข้าใจแล้ว
quantum231

@ quantum321 ฉันคิดว่าค่าส่งคืนนั้นไม่ได้กำหนดทางเทคนิคไม่ใช่โมฆะ แต่คิดว่าเป็น "โมฆะ" มีประโยชน์
Dr. Person Person II

@ Dr.PersonPersonII โดย 'ถ้าผลตอบแทนที่วิธีการของคุณ 'เป็นโมฆะ'' voidฉันหมายถึงมุมมองการสร้างประโยคอย่างหมดจดชนิดกลับวิธีการประกาศให้เป็น ในทางเทคนิควิธีการจะไม่ส่งคืนสิ่งใด ซึ่งแตกต่างจากการส่งคืนที่ไม่ได้กำหนด
Mehrdad Afshari

2
จริงๆแล้วคุณสามารถเขียนได้return void()ด้วย :)
Lightness Races ใน Orbit



-1

ฉันรู้ว่าคำถามได้รับคำตอบแล้วและการใช้returnคำสั่งก็ทำงานได้ แต่คุณสามารถรวมฟังก์ชั่นที่เหลือในelseบล็อกของifเงื่อนไข

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.