Sottoprogrammi: procedure e funzioni - 2


Una funzione è una subroutine che restituisce un risultato (numero, riga di caratteri, ecc.).

Immagina di aver ordinato un prodotto da un negozio online. Da un punto di vista della programmazione, hai chiamato una subroutine e, a differenza di una procedura, questa subroutine deve restituire un risultato: consegnare il prodotto che hai ordinato. Queste subroutine sono chiamate funzioni.
Una funzione è formattata esattamente allo stesso modo di una procedura. L'unica differenza da una procedura è la presenza di un operatore speciale return,
 dopo di che viene scritto il valore da restituire al programma principale.

Una funzione che restituisce la media aritmetica di due numeri interi sarebbe simile a questa:
media variabile(int a, int b)
{
    float media = (a + b) / 2.0;
    ritorno agosto;
}
Resta da capire come chiamare questa funzione nel programma principale. Non dovresti chiamare una funzione allo stesso modo di una procedura:
media(10, 5); 
Il valore restituito dalla funzione andrà perso. È come se la merce del negozio online non fosse data a nessuno, ma buttata via. È improbabile che piaccia al cliente.

È più corretto memorizzare il risultato in una variabile (o visualizzarlo sullo schermo):
float a = media(10, 5); 
Console.WriteLine(average(10, 5));< /codice>

Spesso i programmatori utilizzano funzioni booleane che restituiscono valori booleani true o false (true o false).
Tali funzioni sono utili per verificare una proprietà.
Considera due esempi di scrittura di una funzione logica che controlli l'uniformità di un numero
Modo migliore:
risultato dell'espressione
n % 2 == 0
sarà vero (vero) o falso (falso)
Non è necessario scrivere un'istruzione condizionale.
Non farlo.
Certo, puoi farlo, ma questa è una voce più lunga.
bool isEven(int n)
{
    rendimento (n % 2 == 0);
}
bool isEven(int n)
{
    se (n % 2 == 0) {
        restituisce vero;
  }
    altro {
        restituire Falso;
  }
}

E l'ultima nota sull'utilizzo di funzioni e procedure: il numero di funzioni e procedure nel programma non è limitato. Inoltre, una subroutine può chiamare un'altra subroutine e persino se stessa.
Inoltre, dopo che il programma raggiunge il return nella funzione, il programma interrompe immediatamente l'esecuzione della funzione e restituisce il valore.
Cioè, anche il secondo esempio della tabella potrebbe essere abbreviato in questo modo:
bool isEven(int n)
{
    if (n % 2 == 0) {
        restituisce True
    }
    restituisce Falso;
}