Pagina 1 di 2

Istruzione salto C

MessaggioInviato: 16 set 2013, 16:56
da wizard
Salve
Volevo avere un suggerimento riguardo un pezzo di codice
La situazione che devo sbrogliare è la seguente:

if(condizione1)
{
statement1;
statement2;
statement3;
}
else if(condizione2)
//esegui statement2
else
//esegui statement3

La mia domanda è: come posso saltare agli statement2 e 3 senza usare il goto e usare funzioni o macro? Esiste qualche "trucchetto" che magari si acquisisce con l'esperienza?
Qualora non ci fosse, quale soluzione è la migliore?

Re: Istruzione salto C

MessaggioInviato: 16 set 2013, 17:02
da AjKDAP
Spiegati meglio, dici di volere eseguire subito gli statement2 e 3, ma quali? quelli all'interno del primo IF ? oppure quelli successivi?

In ogni caso una possibilità è di aggiungere un'ulteriore variabile booleana da inserire assieme ad una determinata condizione utilizzando l'operatore "and" (&&).

Codice: Seleziona tutto
nuovaVariabile=false;
if(condizione1 && nuovaVariabile)
...

Re: Istruzione salto C

MessaggioInviato: 16 set 2013, 17:05
da c1b8
Potresti fare un esempio più concreto? Sinceramente non ho compreso bene il tuo dubbio.

Ps.: vedo che non sono l'unica ad avere questo dubbio...

Re: Istruzione salto C

MessaggioInviato: 16 set 2013, 17:13
da wizard
Provo a spiegare meglio visti i dubbi di Foto UtenteAjKDAP e Foto Utentec1b8
Si verifica la condizione1: vengono eseguiti gli statement1, 2 e 3...non ho problemi di alcun genere.
Si verifica la condizione2: vorrei saltare allo statement2 ed eseguire statements2 e 3 (statements contenuti nel primo if)...stesso discorso se non dovesse verificarsi né la condizione1 né 2: vorrei saltare allo statement3 ed eseguirlo
Faccio un esempio pratico utilizzando il goto (anche se mi hanno detto che nei linguaggi alto livello è da evitare)

if(condizione1)
{
statement1;
secondo_statement: statement2;
terzo_statement: statement3;
}
else if(condizione2)
goto secondo_statement;
else
goto terzo_statement;

Spero di essere stato più chiaro :-)

Re: Istruzione salto C

MessaggioInviato: 16 set 2013, 17:21
da c1b8
Vista così io scriverei:
Codice: Seleziona tutto
if(condizione1)
     statement1;
if(condizione1 || condizione2)
     statement2;

statement3;

Infatti lo statement3 deve essere sempre eseguito.
Lo statement1 viene eseguito solo per condizione1.
Lo statement2 per condizione1 o condizione2.
Non usi goto e scrivi gli statement una sola volta

Re: Istruzione salto C

MessaggioInviato: 16 set 2013, 17:27
da wizard
Già!!! Così dal punto di vista logico va bene e non c'è bisogno di cambiare o aggiungere nulla :D
Lo proverò e ti farò sapere (anche se non credo ci saranno problemi)
Grazie :-)

Re: Istruzione salto C

MessaggioInviato: 16 set 2013, 18:31
da wizard
In realtà non va bene Foto Utentec1b8
Infatti quando si verifica la condizione1 esegue (giustamente) solo lo statement1 e 3 ignorando completamente il 2

Re: Istruzione salto C

MessaggioInviato: 16 set 2013, 18:35
da AjKDAP
Ne sei sicuro ? :roll:

Leggiti questo.

Re: Istruzione salto C

MessaggioInviato: 16 set 2013, 18:43
da wizard
Foto UtenteAjKDAP ne sono sicuro al 100% semplicemente perché il risultato è sotto i miei occhi...lo statement2 viene ignorato quando si verifica la condizione1 perché viene eseguito il primo if; dopo che viene eseguito lo statement1 viene eseguito quello 3...non mi sto mi inventanto nulla perché il risultato ottenuto è mancante del valore che sarebbe uscito eseguendo lo statement2 ;-)

Re: Istruzione salto C

MessaggioInviato: 16 set 2013, 18:57
da AjKDAP
Sicuro di aver messo bene tutte le parentesi? :D

Il codice di Foto Utentec1b8 è corretto, quindi presumo che ci sia un tuo errore nel codice. Puoi postare la parte di codice interessata?