/* *************************************************************************
* Fino ad ora i nostri programmi sono stati visti come una sequenza di
* istruzioni all'interno della funzione main().
* Proviamo a raggruppare le istruzioni in metodi, che svolgano ognuno
* un certo compito. Vediamo il formato di un metodo:
*
* TipoRitorno NomeMetodo(Lista tipo e nome argomenti passati)
* {
* corpo del metodo
* }
*
* TipoRitorno = dichiara il tipo di valore (int, float, ecc.) che il
* metodo restituisce attraverso l'istruzione return.
* NomeMetodo = Il nome del metodo, che scegliamo a nostro piacimento,
* basta che non sia uguale ad una delle parole chiave.
* Lista Argomenti = Una lista di nomi di variabili separate da virgole,
* preceduti dal tipo di variabile stesso (int, float...)
* Questi sono i parametri in ENTRATA del metodo,
* ovvero i dati che gli vengono passati alla chiamata.
*
* Opzionalmente si puo' aggiungere, prima del TipoRitorno, un modificatore,
* che puo' essere public,protected,private,static o altri che vedremo.
*
* Ecco un esempio:
*
* int somma(int a,int b) // Funzione che restituisce un valore INT
* // ed ha 2 parametri in entrata sempre INT
* {
* return(a+b); * Restituisci il risultato di a+b
* }
*
* Per chiamare questa funzione dal corpo di main() si fa in questo modo:
*
* papero = somma(pippo,pluto);
*
* Da notare che non e' necessario passare al metodo variabili con gli stessi
* nomi di quelle usate nel metodo (che in questo caso si chiamano a,b),
* basta che siano 2 variabili dello stesso tipo (in questo caso int).
* Gia' che ci siamo, possiamo isolare il codice che legge una variabile
* da tastiera e farne un metodo LeggiInt(): tale metodo non richiedera'
* parametri in entrata (lasceremo le parentesi vuote, non occorre metterci
* il void), e restituira' in uscita il valore intero letto.
************************************************************************* */
import java.io.*; // Include le funzioni I/O standard di base.
class Jlez2a { // Da qua inizia la classe Jlez2a
public static void main(String args[]) // Definiamo il metodo Main.
{ // Inizio del main()
System.out.println("Dammi un numero:");
int pippo = leggiInt(); // Chiamo il metodo "int leggiInt()"
System.out.println("Dammi un'altro numero: ");
int pluto = leggiInt(); // Chiamo il metodo "int leggiInt()"
int papero = somma(pippo,pluto); // Chiamo il metodo "int somma(int,int)"
System.out.println("La somma dei due e' " + papero);
} // Fine del metodo principale Main()
/* -------------------------------------------------------------------------
* Ora definiamo una funzione chiamata somma(), che in entrata richiede 2
* variabili di tipo intero, e in uscita restituisce un'altro numero intero.
* int somma(int,int)
* ----------------------------------------------------------------------- */
public static int somma(int a,int b)
{
System.out.println("Sto calcolando la somma... com'e' difficile!!!");
return(a+b);
} // Fine di "int somma(int,int)"
/* -------------------------------------------------------------------------
* Ora definiamo un metodo chiamato leggiInt(), che in entrata non ha
* parametri, e in uscita restituisce un numero intero immesso da tastiera.
* int leggiInt()
* ----------------------------------------------------------------------- */
public static int leggiInt()
{
try {
DataInputStream leggilo = new DataInputStream(System.in);
String stringa = leggilo.readLine(); // dichiaro e leggo stringa.
return(Integer.valueOf(stringa).intValue()); // e la converto in int.
}
catch (Exception e) {
System.out.println("Errore: " + e + " nella lettura da tastiera");
System.exit(0);
return(-1); // Questo return serve solo perche' il metodo
// abbia un int di ritorno anche in caso di errore
}
} // Fine di "int leggiInt()"
} // Fine della classe Jlez2a
