AIUTO IN UN IF-ELSE

di Anonimizzato15736 il
9 risposte
Buonasera a tutti,

ho un enorme problema con un IF-ELSE.
Vi spiego il problema in parole povere.

Come faccio ad avere aggiornata anche nell'ELSE una variabile che ho aggiornato nell'IF?
in pratica nell IF ho una capacità di un contenitore che viene aggiornata, ma quando la condizione non è verificata eseguo le istruzioni che sono nell'ELSE.
Il problema è che la variabile della capacità che ho aggiornato nell'IF voglio resti aggiornata anche nell'ELSE.
Come posso fare?

Spero di essere stato chiaro.
Grazie a tutti

9 Risposte

  • Spiega un po' meglio il problema, usa del codice d'esempio ...
  • Nel passaggio dall IF all ELSE, la variabile spazio_ rack non rimane aggiornata.
    Ho estratto la parte di codice che mi interessa, tutto sarebbe eccessivo sono più di 400 righe.
    if (matrice_domanda[(matrice_clienti[i][t-2])-1][t-1]<=spazio_rack[matrice_rack[(matrice_clienti[i][t-2])-1][t-2]])
           {
             spazio_rack[matrice_rack[(matrice_clienti[i][t-2])-1][t-2]]=spazio_rack[matrice_rack[(matrice_clienti[i][t-2])-1][t-2]]-matrice_domanda[(matrice_clienti[i][t-2])-1][t-1];
             matrice_rack[(matrice_clienti[i][t-2])-1][t-1]=matrice_rack[(matrice_clienti[i][t-2])-1][t-2]; 
             cout<<"CLIENTE "<<matrice_clienti[i][t-2]<<" sta nel RACK "<<matrice_rack[(matrice_clienti[i][t-2])-1][t-2];
             f<<"CLIENTE "<<matrice_clienti[i][t-2]<<" sta nel RACK "<<matrice_rack[(matrice_clienti[i][t-2])-1][t-2]<<endl;
           } 
           else
           {
            etichetta_2:
            if(matrice_domanda[(matrice_clienti[i][t-2])-1][t-1]<=spazio_rack[r-1])
            {
             spazio_rack[r-1]=spazio_rack[r-1]-matrice_domanda[(matrice_clienti[i][t-2])-1][t-1];
             matrice_rack[(matrice_clienti[i][t-2])-1][t-1]=r;  
             cout<<"CLIENTE "<<matrice_clienti[i][t-2]<<" sta nel RACK "<<matrice_rack[(matrice_clienti[i][t-2])-1][t-1]<<endl;
             f<<"CLIENTE "<<matrice_clienti[i][t-2]<<" sta nel RACK "<<matrice_rack[(matrice_clienti[i][t-2])-1][t-1]<<endl;          
            } 
            else
            {
            if(r==new_rack)
            {
            new_rack=new_rack+1;
            r=r+1;
            spazio_rack[r]=slot;
            goto etichetta_2;  
            }      
           else
            {
            r=r+1;
            goto etichetta_2;
            }  
           } 
             
          }
          }
  • Goto =
    Detto questo, a parte che non si capisce a quale blocco if-else ti riferisci, se ho ben interpretato la tua domanda ti basta inserire al posto di un else un nuovo if, in modo tale che la condizione venga nuovamente calcolata in base al nuovo valore assunto dalla tua variabile.
  • Vorrei sapere se nell'IF la variabile pinco viene aggiornata al valore 20, quando passo all'ELSE e riprendo la variabile pinco, vale ancora 20?
    Grazie
  • Se la condizione all'interno dell'if è verificata, indipendentemente da quello che fai ciò che si trova nell'if non viene valutato. Pertanto, se vuoi che venga verificata anche una nuova condizione e, in caso affermativo, sia eseguito il codice contenuto in quel blocco, al posto dell'else inserisci un nuovo if con la condizione che ti serve.
  • Dato che non riesci a spiegarti con del codice d'esempio, segui queste due righe

    if a==1
    pinco = 20;
    else
    altro codice ...

    Ovviamente dopo la else la variabile pinco non vale 20.

    Ora spiega meglio in base a questo codice ...
  • Scusami ma non ho ben capito cosa vuoi dire.
  • Voglio dire che devi spiegare meglio il problema perché non si è capito nulla ... E magari fallo in base a quelle righe che ti ho mostrato perché il tuo codice è troppo confuso e non hai comunque detto a quali righe fai riferimento.

    Nei forum, per avere risposte sensate, bisogna saper spiegare i problemi ...
  • Mi chiedo ma se la tua if/else , in un modo o nell' altro viene cmq aggiornata. perchè la metti tra if/else?
Devi accedere o registrarti per scrivere nel forum
9 risposte