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?
Odpowiedz
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().
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.
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.
+1 od ładnych zdjęć –
- 1. Jakie są różnice między postem a stroną
- 2. Jakie są różnice między MPI a OpenMP?
- 3. Jakie są różnice między typedef a używaniem?
- 4. Jakie są różnice między programem a aplikacją?
- 5. Jakie są różnice między java 1.5 a java 1.6
- 6. Jakie są różnice między widokiem snapshot a widokiem dynamicznym?
- 7. Jakie są różnice między & a &&, | i || w R?
- 8. Jakie są różnice między Visual Studio Code a Visual Studio?
- 9. Jakie są różnice między gradle assemble a gradle build taks?
- 10. Jakie są różnice między VBA 6.0 a VBA 7.0?
- 11. Jakie są różnice między rzutami a ponownymi rzutami w Swift?
- 12. Jakie są podstawowe różnice między instancją a obiektem klasy?
- 13. Jakie są różnice między trybem binarnym MD5 a trybem tekstowym?
- 14. Jakie są różnice między Tibco EMS a Rendezvous
- 15. Jakie są różnice w JIT między Javą a .Net
- 16. Jakie są duże różnice między wtyczką IntelliJ + Ruby a RubyMine?
- 17. Jakie są różnice między powłoką logowania a powłoką interaktywną?
- 18. Jakie są różnice między Hazelcast Jet a Apache Flink?
- 19. Jakie są różnice między PECL i PEAR?
- 20. Jakie są różnice między Haskell i PureScript?
- 21. Jakie są różnice między Conda i Anaconda
- 22. Jakie są różnice między @dynamic i @synthesize?
- 23. Jakie są różnice między LinFu.DynamicProxy i Castle.DynamicProxy?
- 24. Jakie są różnice między możliwościami obliczeniowymi CUDA?
- 25. Jakie są różnice między utf8_general_ci i utf8_unicode_ci?
- 26. Różnica między wyjściem a wylogowaniem
- 27. Różnice między GWT a Vaadin
- 28. Różnica między wyjściem (0) a wyjściem (1) w języku Python
- 29. W C++, jakie są różnice między static_cast <double> (a) i double (a)?
- 30. Jakie są różnice między `` pushManager.getSubscription` pushManager.subscribe` i usługi pracownika
czy to praca domowa? – Naveen
break() nie jest funkcją, jest częścią składni języka. exit() jest funkcją. Z której książki się tego nie uczysz? –