Problema con "if" ed "else"

di il
9 risposte

Problema con "if" ed "else"

Salve a tutti.. è la prima volta che scrivo anche se leggevo già da un po... mi accingo alla comprensione ed allo studio del linguaggio C++ da pochi mesi.. ma arrivato ai comandi "if" ed "else" mi sono bloccato non comprendendone la loro funzione... qualcuno di voi potrebbe aiutarmi spiegandomi bene il significato?
-Grazie.

9 Risposte

  • Re: Problema con "if" ed "else"

    Beh, immagino che tu stia studiando da uno o più libri ...

    Su tutti i testi if ... else devono essere necessariamente spiegati dato che sono costrutti "di base" del linguaggio (veramente lo sono di tutti i linguaggi di programmazione).
    In realtà sono molto semplici ed equivalgono a dire

    "se" <si verifica una certa condizione>
    ... esegui questa parte di codice
    "altrimenti"
    ... esegui quest'altra parte di codice

    Quali sono i tuoi dubbi?
  • Re: Problema con "if" ed "else"

    I miei dubbi riguardano la loro funzione quando devono essere usati e come... per if ho più o meno capito a cosa serve.. ma potresti farmi degli esempi?
    E invece per else? quello proprio non ho capito a che serve e come si chiama
  • Re: Problema con "if" ed "else"

    Alex_ ha scritto:


    i miei dubbi riguardano la loro funzione quando devono essere usati e come... per if ho più o meno capito a cosa serve.. ma potresti farmi degli esempi?
    Beh, degli esempi sulla if mi sembrano veramente troppo ... un qualsiasi libro basterebbe ... comunque
    
    if (a>b)
     printf("a è maggiore di b");
    else
     printf("a non è maggiore di b");
    
  • Re: Problema con "if" ed "else"

    Il costrutto else (che in inglese cuol dire "altrimenti" va sempre in coppia con un if e serve a fornire un alternativa.

    In generale penso che tutti gli else potrebbero essere sostituiti con degli if; ad esempio nell'esempio di Oregon volendo si potrebbe sostituire l'else con un altro if in questo modo (aggiungo anche le graffe, che però non sarebbero indispensabili quando l'if e l'else contengono solo 1 istruzione):
    
    if (a>b) {
        printf("a è maggiore di b");
    }
    if(a<=b) {
        printf("a non è maggiore di b");
    }
    
    Però vedi bene che si deve scrivere di più, quindi tanto vale mettere gli else. Inoltre se usi gli alse l'algoritmo è più efficiente, perché deve velutare solo una condizione invece che 2.

    Ciao
  • Re: Problema con "if" ed "else"

    Anche se non è sempre vero che la if....else è sostituibile con due if ... in programmi molto complessi si potrebbero verificare effetti non voluti. Per banalizzare, con questo codice
    
    if (a>b) {
        printf("a è maggiore di b");
        a=b;
    }
    else {
        printf("a non è maggiore di b");
    }
    avresti comunque un solo messaggio mentre con questo
    
    if (a>b) {
        printf("a è maggiore di b");
        a=b;
    }
    if(a<=b) {
        printf("a non è maggiore di b");
    }
    
    ne avresti due e un po' di confusione.
  • Re: Problema con "if" ed "else"

    Grazie a tutti per la spiegazione che sul libro che uso non trovavo... ora proverò a fare qualche esercizio.
  • Re: Problema con "if" ed "else"

    oregon ha scritto:


    
    if (a>b) {
        printf("a è maggiore di b");
        a=b;
    }
    if(a<=b) {
        printf("a non è maggiore di b");
    }
    
    ne avresti due e un po' di confusione.
    Basterebbe invertire le condizioni.

    Secondo me è sempre possibile sostituire l'else con un altro if, perché in fondo l'else viene eseguito quando la condizione è falsa, quindi basta sostituirlo con un if in cui si nega la condizione del precedente, dopodiché al massimo si scambiano i blocchi se ci si trova in un caso come quello del tuo esempio. Sarebbe interessante vedere se esistono linguaggi Turing-completi senza else.
  • Re: Problema con "if" ed "else"

    Basterebbe invertire le condizioni.
    Ma all'interno di un programma con molte righe, se aggiungi quella linea nella if non è detto che noti subito la necessità di invertire i blocchi. E potresti avere mille problemi ...
  • Re: Problema con "if" ed "else"

    Sì certo, so bene che usare gli else migliora la riusabilità e la leggibilità del codice, il mio voleva essere un discorso puramente teorico sulla possibilità di sostituire qualsiasi else con un altro if.

    ciao
Devi accedere o registrarti per scrivere nel forum
9 risposte