2011-06-10 62 views
16

Nếu tôi có một chức năng như sau:Làm thế nào để thoát ra khỏi một hàm

void func() { 
    //... 

    if (condition) { 
     break; 
    } 
} 

Khi tôi sử dụng phá vỡ nó mang lại cho tôi một lỗi. Có cách nào khác để thoát khỏi một hàm sử dụng điều kiện if và để hoàn thành việc biên dịch mã bình thường không?

+0

Điều này có thể do quan niệm sai lầm rằng nếu được nhiều người cho là "if loop". Trên thực tế nó là "nếu điều kiện". –

Trả lời

25

ngắt được sử dụng trong vòng lặp và câu lệnh chuyển đổi. sử dụng return để thay thế.

+12

Lưu ý rằng 'return' hoạt động ngay cả khi hàm có kiểu trả về' void'. Bạn chỉ cần viết 'return;' trong trường hợp đó. –

2

Trong C++, bạn có thể return từ một hàm bất kỳ lúc nào bạn muốn.

5

sử dụng return;:

if(/*condition*/) { return; }

2

Chỉ cần sử dụng return.

Thông tin khác có thể được tìm thấy here.

0

break để thoát khỏi vòng lặp hoặc cấu trúc switch. Thay vào đó, hãy sử dụng return với giá trị tùy chọn.

3

Hãy thử sử dụng 'trả lại' thay vì ngắt khi bạn hoàn thành mã chạy bình thường.

Sử dụng 'phá vỡ' trong trường hợp chuyển đổi hoặc cho vòng lặp để thực hiện bình thường

Sử dụng 'thoát' cho lực lượng dừng ở thực

0

Đơn giản chỉ cần đặt biến tăng đối với một số gây ra vòng lặp để phá vỡ. Ví dụ:

void calculate() { 
    for(i=0;i<10;i++) { 
     i=11; 
    } 
} 
+0

không hoàn toàn là câu trả lời, Shadi hỏi làm thế nào để thoát khỏi chức năng, một trở lại void sẽ làm các trick. – prmottajr

0

Chỉ cần sử dụng câu trả lời return không trả lại gì. Giống như:

if(predicate) 
return; 
Các vấn đề liên quan