Block Image

Creiamo un primo semplice programma in Java, in modo procedurale, che realizzi il seguente algoritmo: dati in ingresso 2 numeri interi a e b, restituire la somma di a e b.

Prerequisiti

  • Aver installato la jdk 8
  • Aver installato un IDE (nella guida useremo Intellij Community Edition)

Passo 1: aprire Intellij

Aprire l'IDE Intellij e cliccare su New Project:

Block Image

Si aprirà la seguente schermata:

Block Image

Clicchiamo su Next. Alla successiva schermata, spuntiamo Create project from template:

Block Image

In questo modo creiamo già uno scheletro per il nostro programma. Diamo come nome del progetto "Somma" e come package: it.enzoracca.somma. Quando illustreremo Java con la programmazione ad oggetti (e quindi useremo davvero Java per la sua interezza), spiegheremo il concetto di package. Per ora vi basta sapere che ogni parola preceduta da un punto rappresenta una cartella. Ci sarà una cartella chiamata "it", dentro ad essa a sua vota ci sarà una cartella chiamata "enzoracca" e dentro ad essa ci sarà una cartella chiamata "somma".

Block Image

Clicchiamo su Finish. Nella cartella "somma" verrà creato un file da Intellij chiamato Main.java, che rappresenta il nostro file sorgente. La struttura del progetto è rappresentata dalla seguente immagine:

Block Image

Nota 1: Il metodo public static void main(String[] args) indica un metodo eseguibile.
Nota 2: Tutto il testo scritto dopo il doppio slash(//) in Java indica un commento,cioè non viene considerato dal compilatore una istruzione java da compilare e verrà ignorata.

Passo 2: Scriviamo le variabili

Il problema che ci viene posto consiste in 2 numeri interi a e b dati in ingresso (in input) e di una somma restituita in output. Avremo quindi 3 variabili: a, b e somma. In Java ogni variabile deve avere un tipo. Ad esempio una variabile può essere di tipo numerico o alfanumerico. Di seguito i tipi, chiamati anche "tipi primitivi", messi a disposizione di Java:

Numeri interi
  1. byte: un numero intero che può rappresentare valori da -128 a 127
  2. short: un numero intero che può rappresentare valori da -32768 a 32767
  3. int: un numero intero che può rappresentare valori da -2147483648 a 2147483647
  4. long: un numero intero che può rappresentare valori da -9223372036854775808 a 9223372036854775807
Numeri con la virgola
  1. float: numeri in virgola mobile in singola precisione
  2. double: numeri in virgola mobile in doppia precisione
Booleani (vero/false)
  1. boolean (può avere come valori true o false)
Caratteri alfanumerici
  1. char

Per il nostro programma useremo variabili di tipo int, che è il tipo più usato per rappresentare numeri interi. Qualora avessimo avuto la necessità di gestire cifre molto grandi, avremmo usato variabili di tipo long.

In Java ogni istruzione termina con un punto e virgola. Dichiaramo le 3 variabili:

package it.enzoracca.somma;

public class Main {

    public static void main(String[] args) {
	// write your code here
		int a;
		int b;
		int somma;
    }
}

Le variabili in Java hanno sempre un valore di default; per int il valore di default è zero. Se però volessimo inizializzare una variabile, ad esempio somma (non ha senso inizializzare a e b visto che saranno dati in input dall'utente), possiamo fare in questo modo:

package it.enzoracca.somma;

public class Main {

    public static void main(String[] args) {
	// write your code here
		int a;
		int b;
		int somma = 0; //ho inizializzato a zero la variabile somma
    }
}
Nota 3: Inizializzare significa assegnare un valore ad una variabile già durante la sua dichiarazione. Cosa succederebbe se inizializzassimo a e b?

Passo 3: Diamo in input a e b

Anche se dobbiamo dare in input i 2 interi, prima, per una questione di pulizia, diamo in output una scritta del genere: "Scrivi il valore di a: ". Per scrivere in output del testo, utilizziamo la seguente istruzione:

System.out.println("Scrivi il valore di a: ");

Per permette all'utente di fornire in input dei dati, che verranno scritti tramite la tastiera ad esempio, usiamo la seguente istruzione:

Scanner scanner = new Scanner(System.in);

Come vedremo nelle lezioni successiva, nella realtà Scanner è una classe java che ci permette di leggere dei valori. In questo caso scrivendo new Scanner(System.in), gli diciamo di leggere lo standard input (tastiera). Ora non ci resta che indicare a Scanner che dovranno essere letti 2 interi.

a = scanner.nextInt();

Qui con scanner.nextInt() stiamo dicendo che verrà dato in input un intero e di assegnare alla variabile l'intero fornito. Per completezza ecco l'intero programma scritto finora:

package it.enzoracca.somma;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
	// write your code here
		int a;
		int b;
		int somma;
		System.out.println("Scrivi il valore di a: ");
		Scanner scanner = new Scanner(System.in);
		a = scanner.nextInt();
		System.out.println("Scrivi il valore di b: ");
		b = scanner.nextInt();
    }
}

Passo 4: calcoliamo la somma e restituiamola in output

A questo punto alla variabile somma possiamo associare il valore di a+b e poi possiamo stamparla in output:

somma = a + b;
System.out.println("La somma tra a e b è: " + somma);

In System.out.println, dopo i doppi apici, abbiamo aggiunto un + che serve a concatenare una variabile al testo scritto.
Quindi in output avremo il messaggio "La somma tra a e b è: " seguito dal contenuto della variabile somma.
Di seguito il programma completo:

package it.enzoracca.somma;

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
	// write your code here
		int a;
		int b;
		int somma;
		System.out.println("Scrivi il valore di a: ");
		Scanner scanner = new Scanner(System.in);
		a = scanner.nextInt();
		System.out.println("Scrivi il valore di b: ");
		b = scanner.nextInt();
		somma = a + b;
		System.out.println("La somma tra a e b è: " + somma);
    }
}

Per eseguire il programma basta cliccare sull'icona play alla sinistra di public class Main

Block Image

Si aprirà in basso un menu a tendina: clicchiamo Run 'Main'. Si aprirà il tab Run di Intellij:

Block Image

Inseriamo un numero e premiamo il tasto Invio della tastiera. Ci comparirà il messagggio "Scrivi il valore di b". Inseriamo b e premiamo Invio.
Infine, in output ci verrà dato il messaggio contentente la somma:

Block Image

Se entriamo nella cartella del progetto Somma, vedremo che oltre alla cartella src, dove risiede il programma sorgente (it/enzoracca/somma/Main.java) ci sarà un'altra cartella chiamata target (oppure out) dove risiederà il programma oggetto generato dall'IDE (contenente Main.class).

Esercitazione: Dati 2 numeri a e b (non per forza interi), restituire la differenza tra a e b.