2010-03-23 15 views
5

Nawet ja użyłem instrukcji break() i exit() wiele razy, jestem trochę zdezorientowany między nimi. Muszę znać dokładne znaczenie obu, kiedy powinniśmy ich używać. Proszę wyjaśnić za pomocą małego przykładu. Dziękuję.Jakie są różnice między przerwą a wyjściem?

+0

czy to praca domowa? – Naveen

+9

break() nie jest funkcją, jest częścią składni języka. exit() jest funkcją. Z której książki się tego nie uczysz? –

Odpowiedz

20

break to słowo kluczowe, które wyjściaprąd skonstruować jak pętle. exit to funkcja non-returning, która zwraca kontrolkę do systemu operacyjnego. Na przykład:

// some code (1) 
while(true) 
{ 
    ... 
    if(something) 
    break; 
} 
// some code (2) 

W powyższym kodzie przerwa kończy bieżącą pętlę, która jest pętlą while. tj. jakiś kod (2) zostanie wykonany po przerwaniu pętli.

Na wyjściu, to po prostu wychodzi z programu łącznie:

// some code (1) 
while(true) 
{ 
    ... 
    if(something) 
    exit(0); 
} 
// some code (2) 

Można by wyjść z programu. to znaczy, że kod (2) nie został osiągnięty w przypadku exit().

2

przerwa służy do wyjścia z pętli.

wyjście służy do zamykania programu.

#include<stdio.h> 
#include<stdlib.h> 
main() 
{ 
     int d; 
     while(1) 
     { 
     scanf("%d",&d); 
     if(d==1) 
     { 
       break; 
     } 
     else if(d==4) 
     { 
       exit(0); 
     } 
     } 
     printf("WELCOME YOU MATCH BREAK\n"); 
} 

Jeśli naciśniesz 1, nastąpi wyjście z pętli. Nie z programu. Tak więc tym razem wydrukuje ciąg znaków.

Naciśnięcie przycisku 4 spowoduje wyjście z programu . Nie spowoduje wydrukowania ciągu znaków.

8

break jest instrukcją sterowania przepływem języka. Mówi, że następna instrukcja do wykonania jest jeden na końcu pętli (lub na końcu zestawienia switch)

while (...) { /* same for "do {} while" or "for" */ 
    ... 
    break; -----+  
    ...   | 
}    | 
....  <---+ JUMP HERE! 



switch (...) { 
    ... 
    break; -----+  
    ...   | 
}    | 
....  <---+ JUMP HERE! 

exit(), zamiast, to funkcja, która mówi, że program musi się skończyć i kontrola musi zostać zwrócona do systemu operacyjnego. W zależności od systemu operacyjnego, przy wyjściu, wiele rzeczy dzieje się za kulisami, aby oczyścić i uwolnić używane zasoby. Możesz także użyć funkcji atexit() (w C99), aby zdefiniować funkcję, która ma zostać wywołana przed wyjściem.

+0

+1 od ładnych zdjęć –

Powiązane problemy