A proposito dell'if.

di il
12 risposte

A proposito dell'if.

Condizione d'uscita dopo un if ed un if else, arrivati all'else??

12 Risposte

  • Re: A proposito dell'if.

    Ma che vuoi dire?
  • Re: A proposito dell'if.

    Quando si usa un if () esp;
    else if() espr2;
    else .... ???? Per uscire dall'if senza far nulla?
  • Re: A proposito dell'if.

    Non sei ancora chiaro ... prova a fare un esempio concreto oppure dicci cosa vorresti fare.
  • Re: A proposito dell'if.

    Per esempio creando questa funzione , alla fine dopo l'else cosa metto ?

    void diagonaleprincipale(int matrice[N][N])
        {
             int i, j;
             int sommasopra=0;
             int sommasotto=0;
             int sommadiagonale=0;
             for(i=0; i<N; i++)
        {
            for(j=0; j<N; j++) {
            if(j>i)
            sommasopra=sommasopra+matrice[i][j];
            else if(j<i)
            sommasotto=sommasotto+matrice[i][j];
            else
            ( per uscire dal ciclo for cosa metto ?)
            }
    }
    
    
    
  • Re: A proposito dell'if.

    Ma tu devi eseguire una linea se j>i e un'altra se j<i ... e nel caso fosse j==i cosa fai?
  • Re: A proposito dell'if.

    Come tu vedi il programma deve fare la somma degli elemente sopra la diagonale e quelli sotto. Se a me nn interessa sapere quelli lungo la diagonale ??
  • Re: A proposito dell'if.

    A questo punto devi usare una sola if ...

    if(j != i)
  • Re: A proposito dell'if.

    Ero sicurissimo ci fosse una condizione d'uscita.. grazie lo stesso
  • Re: A proposito dell'if.

    Dalle if non si esce, non si parla di condizioni di uscita ... Le tue if potevano essere scritte con
    
    if(j>i)
            sommasopra=sommasopra+matrice[i][j];
    else if(j<i)
            sommasotto=sommasotto+matrice[i][j];
    
    senza la else finale (la else non è obbligatoria).

    Ma le tue if così scritte equivalgono alla più ovvia
    
    if(j != i)
            sommasopra=sommasopra+matrice[i][j];
    
    Questi argomenti (le if ...) sono di base del linguaggio e ti devono essere più che chiari, altrimenti devi impiegare un po' di tempo per rivederli senza andare oltre.-
  • Re: A proposito dell'if.

    Ok grazie mille.
  • Re: A proposito dell'if.

    oregon ha scritto:


    Dalle if non si esce, non si parla di condizioni di uscita ... Le tue if potevano essere scritte con
    
    if(j>i)
            sommasopra=sommasopra+matrice[i][j];
    else if(j<i)
            sommasotto=sommasotto+matrice[i][j];
    
    senza la else finale (la else non è obbligatoria).

    Ma le tue if così scritte equivalgono alla più ovvia
    
    if(j != i)
            sommasopra=sommasopra+matrice[i][j];
    
    Questi argomenti (le if ...) sono di base del linguaggio e ti devono essere più che chiari, altrimenti devi impiegare un po' di tempo per rivederli senza andare oltre.-
    Ni!
    Con "j>i" incrementa "sommasopra"
    Con "j<i" incrementa "sommasotto" (un'altra variabile)

    Con la versione "j!=i" incrementi SEMPRE sommasopra, cioe' un'unica variabile.

    Ora, magari va bene lo stesso, ma non sono equivalenti.

    L' if NON E' COME UN CICLO, si esce sempre!

    Si sceglie il ramo true se la condizione e' vera, altrimenti il ramo false (quello con l'else) se la condizione e' falsa.

    Se il ramo else non c'e', e' come se fosse scritto "else {}", cioe' non fa nulla!

    E continua con quello che c'e' dopo l'if.
  • Re: A proposito dell'if.

    Sì non avevo fatto molta attenzione al nome delle variabili ... quindi userai due if

    if(j>i) sommasopra ...
    if(j<i) sommasotto ...
Devi accedere o registrarti per scrivere nel forum
12 risposte