Esempio di uso delle stringhe: stampa per righe

Vediamo un possibile uso delle operazioni fra stringhe. Si voglino stampare i numeri della serie di Fibonacci in modo che ogni riga ne contenga cinque invece che uno. Inoltre, ci si vuole fermare alla settima riga.

Il programma Colonne.java ha questa struttura: usiamo un variabile riga che va da 1 a 7. Usiamo poi una seconda variabile colonna che, per ogni riga, va da 1 a 5 (infatti, si vogliono cinque numeri per ogni riga, cioè cinque colonne di numeri). Poi abbiamo ancora le variabili penultimo, ultimo, e prossimo per la serie.

/*
  Serie di Fibonacci, in colonne
*/

class Colonne {
  public static void main(String[] args) {
    int riga, colonna;
    int penultimo, ultimo, prossimo;
    String rigacorrente;

    penultimo=1;
    ultimo=1;

    for(riga=1; riga<=7; riga=riga+1) {
      rigacorrente=" ";

      for(colonna=1; colonna<=5; colonna=colonna+1) {
        rigacorrente=rigacorrente+" "+penultimo;

        prossimo=penultimo+ultimo;
        penultimo=ultimo;
        ultimo=prossimo;
      }

      System.out.println(rigacorrente);
    }
  }
}

Cose da notare in questo programma:

  1. c'è un ciclo for dentro l'altro: questo significa che a ogni passata del ciclo esterno, viene eseguito il ciclo interno; quindi, ogni volta che riga assume un nuovo valore, il ciclo interno viene eseguito per tutti i valori di colonna;
  2. ogni volta che si calcola un nuovo valore della serie, va aggiunto alla variabile di tipo stringa che rappresenta la riga che si sta costruendo; dal momento che rigacorrente+" "+penultimo è la espressione che rappresenta il contenuto della variabile rigacorrente a cui è stato concatenato penultimo, la istruzione rigacorrente=rigacorrente+" "+penultimo; ha come effetto quello di concatenare penultimo a rigacorrente e mettere poi il risultato in rigacorrente;
  3. all'inizio della creazione di una nuova riga, occorre cancellare la riga precedente e ricominciare con i nuovi valori; per questo, all'inizio di ogni riga, si esegue la istruzione rigacorrente=" ";. Come per tutte le variabili, l'assegnazione mette quello che sta a destra nella variabile a sinistra. Questo significa che il contenuto di rigacorrente viene sostituito da " ".