View Full Version : [C++] "Return 0" chiarimenti
Albitexm
21-08-2010, 00:39
" return 0; " Questa istruzione "termina" sempre il programma, se dichiarata nella main, facendomi uscire da essa? Questo vale anche se chiamata in espressioni IF nidificate, purchč nella main ( ovvero non all'interno di altre funzioni)?
In pratica se io scrivo: if (..){ if(..){chiamata funzione, ritorno valore, if (valore=..)return 0;
uscirņ dalla main?
alemoppo
21-08-2010, 01:10
Anche se č in C si dovrebbe capire :)
#include <stdio.h>
int main()
{
int a;
scanf("%d", &a);
if(a > 10)
return 2;
else return 1;
}
se inserisci un numero maggiore di 10, il programma ritorna 2 ed esce, altrimenti ritorna 1 ed esce....
Quindi termina sia il programma, o se č dentro una funzione termina la funzione stessa (ovviamente facendogli ritornare il valore).
Puoi ritornare in if nidificati, in switch, in qualsiasi posto...
Ciao!
Il return non serve ad interrompere l'esecuzione di un programma, serve ad interrompere l'esecuzione di una funzione e a ritornare un valore al chiamante.
Il caso del main č solo un caso particolare in cui il chiamante č il sistema operativo ed il risultato č lo stato di errore del sistema operativo. Il return si usa esattamente in modo identico rispetto alle altre funzioni.
Albitexm
21-08-2010, 15:30
Anche se č in C si dovrebbe capire :)
..
Grazie
Albitexm
21-08-2010, 15:39
Il return non serve ad interrompere l'esecuzione di un programma, serve ad interrompere l'esecuzione di una funzione e a ritornare un valore al chiamante.
Il caso del main č solo un caso particolare in cui il chiamante č il sistema operativo ed il risultato č lo stato di errore del sistema operativo. Il return si usa esattamente in modo identico rispetto alle altre funzioni.
Si, ma nel mio caso lo voglio usare in fase di debug, quando si verifica una situazione particolare. In debug in questo caso farņ terminare il programma , e potrņ verificare se l'algoritmo funziona come voglio. Succesivamente sostituirņ a return 0 il codice neccessario per "all'acciarmi" alla parte di programma dove devo "rientrare" in questo caso. Il mio dubbio era solo se potevo usarlo anche all'interno di IF nidificati, ora chiarito.
Per fare questo si usa la funzione della libreria cstdlib che si chiama exit. Ti esce dal programma anche se non sei nel main. Il return appunto non serve per interrompere l'esecuzione del programma, il fatto che lo faccia nel main č solo un side effect del fatto che il chiamante č il sistema operativo.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.