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:
- 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;
- 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;
- 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 " ".