Chiamata e ritorno

In ambito statico… un sottoprogramma

public static tipo metodo(elenco_parametri_formali)
{
   ...
   ...
}

assomiglia alla sezione main

public static void main(String args[])
{
   ...
   ...
}

con

  • metodo, è il nome assegnato al sottoprogramma
  • tipo, rappresenta il tipo di dato dell’eventuale valore di ritorno, void altrimenti
  • elenco_parametri_formali, facoltativo
  • ..., istruzioni facoltative

Chiamata

Per passare il controllo al metodo è necessario chiamarlo

metodo(elenco_parametri_attuali);

con

  • elenco_parametri_attuali, deve corrispondere in numero, posizione e tipo all’elenco_parametri_formali

Ritorno

Il controllo ritorna al chiamante quando si giunge all’etichetta di fine del metodo (la parentesi graffa chiusa)

...
aspetta0();
...
public static void aspetta0()
{
   int x;
   do
   {
      ...
   }
   while(x != 0);
}

o se è richiesto esplicitamente dal codice con un’istruzione di ritorno, return

...
aspetta0();
...
public static void aspetta0()
{
   int x;
   do
   {
      ...
      if(x == 0)
         return;
   }
   while(true);
}

Tipo

Se il tipo del metodo è diverso da void significa che l’istruzione return è seguita da un’espressione il cui valore verrà restituito nel punto in cui è avvenuta la chiamata.

...
System.out.println("Il valore è " + aspettaDiverso0());
...
int numero=aspettaDiverso0();
...
public static int aspettaDiverso0()
{
   int x;
   do
   {
      ...
      if(x != 0)
         return x;
   }
   while(true);
}