effe (Normal User)
Newbie
Messaggi: 1
Iscritto: 26/10/2009
|
premetto che sono ancora un principiante con il c ma volevo sapere se posso tornare alla prima printf quando si esce dal if? grazie...
...
printf("che programma vuoi usare?\n""\n1.calcolatrice\n""2.convertitore\n"
"\nscelta: ");
scanf_s("%d",&pr);
if (pr!=1&&pr!=2) {
printf ("hai sbagliato a scegliere\n");}
...
|
|
ingMark (Ex-Member)
Pro
Messaggi: 176
Iscritto: 19/07/2009
|
sei già arrivato ai cicli (while, for) ?
|
|
LittleHacker (Member)
Guru
Messaggi: 1033
Iscritto: 28/04/2009
|
Postato originariamente da effe:
premetto che sono ancora un principiante con il c ma volevo sapere se posso tornare alla prima printf quando si esce dal if? grazie...
|
Certo basta che la riga prima del tuo printf dichiari ad esempio returns nota è con la s)
e alla fine del tuo if ad esempio se chiedi vuoi uscire Si,No
Codice sorgente - presumibilmente C/C++ |
returns:
printf("Vuoi uscire(S,N)?");
if(rix=="S"){
return 0;
}else{
goto returns;
}
|
|
|
evilmight (Member)
Expert
Messaggi: 206
Iscritto: 28/01/2009
|
comunque stai molto attento quando usi 'goto' (evitalo!), rende il codice poco leggibile.
Ultima modifica effettuata da evilmight il 06/11/2009 alle 16:25 |
|
ilmettiu (Ex-Member)
Pro
Messaggi: 88
Iscritto: 17/09/2009
|
|
|
ingMark (Ex-Member)
Pro
Messaggi: 176
Iscritto: 19/07/2009
|
è risolvibilissimo con una cosa del tipo
Codice sorgente - presumibilmente C/C++ |
while(uscita == 0) /*o FALSE se sai già cosa significa */
{
printf("Vuoi uscire?\n");
scanf("%c", &scelta);
if(scelta == 's')
uscita = 1; /*o TRUE se sai già cosa significa */
}
|
non richiede grandi conoscenze e non si usano i goto
|
|
evilmight (Member)
Expert
Messaggi: 206
Iscritto: 28/01/2009
|
Postato originariamente da ingMark:
è risolvibilissimo con una cosa del tipo
Codice sorgente - presumibilmente C/C++ |
while(uscita == 0) /*o FALSE se sai già cosa significa */
{
printf("Vuoi uscire?\n");
scanf("%c", &scelta);
if(scelta == 's')
uscita = 1; /*o TRUE se sai già cosa significa */
}
|
non richiede grandi conoscenze e non si usano i goto |
veramente cosi non sarebbe proprio corretto, se io do il valore '3'(che è sempre TRUE) o 'c' il programma esce comunque. |
|
ingMark (Ex-Member)
Pro
Messaggi: 176
Iscritto: 19/07/2009
|
Postato originariamente da evilmight:
veramente cosi non sarebbe proprio corretto, se io do il valore '3'(che è sempre TRUE) o 'c' il programma esce comunque. |
Non ho capito il senso della tua affermazione
Se intendi che qualunque valore non-zero è true, hai ragione ma non ci interessa minimamente perchè a uscita il valore 1 glielo dai tu, puoi dargli 3 se vuoi
se gli passi il valore c o il valore 3 il programma non esce, esce solo con s(l'ho provato ora).
Che poi sia discutibile come soluzione non c'è dubbio, ma è stato lui stesso a dire che è un principiante e come principiante ha bisogno di soluzioni semplici
Tuttavia un errore c'è (me ne sono accorto ora).
Se l'utente decide di non uscire, la scritta "vuoi uscire?" apparirà due volte di fila perchè il \n non viene mangiato.
quindi il codice corretto sarebbe
Codice sorgente - presumibilmente C++ |
#include <stdio.h> int main() { int uscita = 0; char scelta; while(uscita == 0) /*o false se sai già cosa significa */ { printf("Vuoi uscire?\n"); scanf("%c", &scelta); while(getchar() != '\n'); if(scelta == 's') uscita = 1; /*o true se sai già cosa significa */ } return 0; }
|
|
|
evilmight (Member)
Expert
Messaggi: 206
Iscritto: 28/01/2009
|
Postato originariamente da ingMark:
Postato originariamente da evilmight:
veramente cosi non sarebbe proprio corretto, se io do il valore '3'(che è sempre TRUE) o 'c' il programma esce comunque. |
Non ho capito il senso della tua affermazione
Se intendi che qualunque valore non-zero è true, hai ragione ma non ci interessa minimamente perchè a uscita il valore 1 glielo dai tu, puoi dargli 3 se vuoi
se gli passi il valore c o il valore 3 il programma non esce, esce solo con s(l'ho provato ora).
Che poi sia discutibile come soluzione non c'è dubbio, ma è stato lui stesso a dire che è un principiante e come principiante ha bisogno di soluzioni semplici
Tuttavia un errore c'è (me ne sono accorto ora).
Se l'utente decide di non uscire, la scritta "vuoi uscire?" apparirà due volte di fila perchè il \n non viene mangiato.
quindi il codice corretto sarebbe
Codice sorgente - presumibilmente C++ |
#include <stdio.h> int main() { int uscita = 0; char scelta; while(uscita == 0) /*o false se sai già cosa significa */ { printf("Vuoi uscire?\n"); scanf("%c", &scelta); while(getchar() != '\n'); if(scelta == 's') uscita = 1; /*o true se sai già cosa significa */ } return 0; }
|
|
O scusa, ho avuto un momento di confusione Ultima modifica effettuata da evilmight il 06/11/2009 alle 18:45 |
|