Java Lezione 2
From UIC
Java Lezione 2
Contents |
| Java Lezione 2 | |
|---|---|
| Author: | Ken1986 |
| Email: | |
| Website: | |
| Date: | 06/10/2008 (dd/mm/yyyy) |
| Level: |
|
| Language: | Italian |
| Comments: | |
Variabili booleane
Una variabile booleana in Java esprime una condizione che può essere vera o falsa (true or false). Ad esempio se vogliamo dichiarare una variabile booleana verifica, il codice da scrivere è il seguente:
Come detto prima, i possibili valori che la variabile verifica può assumere sono: true o false. Una condizione può essere espressa tramite gli operatori di confronto che sono:
- < (minore);
- > (maggiore);
- <= (minore uguale);
- >= (maggiore uguale);
- == (uguale)
- != (diverso)
Ad esempio:
boolean ricco = reddito > 100000;
boolean povero = reddito == 0;
Operatori booleani
In java useremo i seguenti operatori per combinare le condizioni della verifica.
&& (AND) || (OR) ! (NOT)
Una condizione booleana può essere composta da and, or e not di variabili e/o condizioni booleane.
Tavole della verità
NOT
| A | Not A |
|--------------|
| 0 | 1 |
| | |
| 1 | 0 |
| | |
|--------------|
AND
| A | B | A and B |
|------------------------|
| 0 | 0 | 0 |
| | | |
| 0 | 1 | 0 |
| | | |
| 1 | 0 | 0 |
| | | |
| 1 | 1 | 1 |
|------------------------|
OR
| A | B | A or B |
|------------------------|
| 0 | 0 | 0 |
| | | |
| 0 | 1 | 1 |
| | | |
| 1 | 0 | 1 |
| | | |
| 1 | 1 | 1 |
|------------------------|
If-Else
L'istruzione if-else serve per valutare il valore di un'espressione logica ed eseguire le opportune operazioni. L'enunciato if è composto da due parti, la verifica e il corpo o istruzione.
istruzione
}
else if(condizione) {
istruzione
}
else {
istruzione
}
Formalmente significherebbe: se la condizione è vera esegui questo codice, altrimenti esegui questo. Il ramo else può mancare quando vi è solo una condizione da verificare, ed in questo caso si parla di istruzione if.
Possiamo evitare di inserire le parentesi {}, quando vi è una sola istruzione da eseguire. Esempio:
public static void main (String [] args){
int numero = Console.readInt ("Inserisci un numero intero: ");
if (numero >= 0)
System.out.println("Il numero e' positivo");
else
System.out.println("Il numero e' negativo");
}
}
If-Else annidati
Ovviamente un'istruzione if può contenere altre istruzioni if. Bisogna stare attenti all'uso delle parentesi quando vi sono if annidati. Se non si usano parentesi, un eventuale ramo else fa riferimento all'if più interno:
Esempio:
if (x > 100)
System.out.println("Il numero e' maggiore di 100");
}
else
System.out.println("Il numero e' zero oppure e' negativo");
Switch
Una serie di if/else/else ecc. per confrontare un singolo valore intero rispetto a diversi valori alternativi di costanti, si può implementare mediante un enunciato switch.
Esempio:
public static void main (String [] args){
int numero = Console.readInt ("Inserisci un numero intero: ");
String convertito="";
switch (numero){
case 1:
convertito = "uno"; break;
case 2:
convertito = "due"; break;
case 3:
convertito = "tre"; break;
//...
default:
convertito = ""; break;
}
System.out.println(convertito);
}
}
Si tratta di una forma abbreviata del seguente codice:
public static void main (String [] args){
int numero = Console.readInt ("Inserisci un numero intero: ");
String convertito="";
if (numero == 1) convertito = "uno";
else if (numero == 2) convertito = "due";
else if (numero == 3) convertito = "tre";
//...
else convertito = "";
System.out.println(convertito);
}
}
L'enunciato switch si può impiegare in circostanze limitate. Gli elementi della verifica devono essere costanti, oltre a essere dei numeri interi; non si può usare switch per diramazioni con numeri in virgola mobile o con valori di stringhe, e tutte le diramazioni confrontano lo stesso valore, in questo caso numero.
While
La sintassi dell'istruzione while è:
eunciato
La condizione deve essere di tipo boolean.
Per capire come funziona il while (ed in generale i cicli), non c'è niente di meglio che fare un esempio:
class es1{
public static void main (String args[]){
int k = Console.readInt("Inserisci un numero intero: ");
int n = 0;
while(n*n <= k){
System.out.print(n + " ");
n = n +1;
}
System.out.println();
}
}
For
La sintassi dell'istruzione for è:
enunciato
La semantica dell'istruzione for è la seguente: esegue ripetutamente e in sequenza i seguenti passi:
- valuta la condizione del for
- se la condizione è vera esegue il corpo del for ed esegue l'aggiornamento del for
- se la condizione è false si ha la terminazione del ciclo.
Per capire anche questa istruzione, ricorreremo ad un esempio:
class es2{
public static void main (String args[]){
int k = Console.readInt("Inserisci un numero intero: ");
int fattoriale = 1;
for (int i=1; i<= k; i++){
fattoriale *= i;
}
System.out.println("Il fattoriale di k e':" + fattoriale);
}
}
Non è necessario che l'incremento (i++) o il decremento (i--) procedano di un'unità alla volta...
Do-While
La sintassi dell'istruzione do-while è:
enunciato
}
while (condizione);
Il ciclo do-while viene eseguito finchè la condizione è vera, siccome la condizione viene verificata dopo l'esecuzione dell'enunciato, il ciclo viene eseguito almeno una volta. La semantica dell'istruzione do-while è la seguente:esegue ripetutamente e in sequenza i seguenti passi:
- esegue il corpo del do-while
- valuta la condizione del do-while
- se la condizione è vera, continua ad eseguire questa sequenza di passi
- se la condizione è falsa si ha la terminazione del ciclo.
Anche per questo tipo di istruzione faremo un esempio per capire meglio:
class es3prova{
public static void main (String args[]){
double positivo;
do{
positivo = Console.readDouble("Inserisci un numero >0");
}while (positivo>0); // Se viene inserito un numero negativo verrà ripetuto finchè non ne verrà inserito uno positivo
}
}
Note Finali
Alla prox lezione, ciauzzzzz.......by Ken1986
Disclaimer
I documenti qui pubblicati sono da considerarsi pubblici e liberamente distribuibili, a patto che se ne citi la fonte di provenienza. Tutti i documenti presenti su queste pagine sono stati scritti esclusivamente a scopo di ricerca, nessuna di queste analisi è stata fatta per fini commerciali, o dietro alcun tipo di compenso. I documenti pubblicati presentano delle analisi puramente teoriche della struttura di un programma, in nessun caso il software è stato realmente disassemblato o modificato; ogni corrispondenza presente tra i documenti pubblicati e le istruzioni del software oggetto dell'analisi, è da ritenersi puramente casuale. Tutti i documenti vengono inviati in forma anonima ed automaticamente pubblicati, i diritti di tali opere appartengono esclusivamente al firmatario del documento (se presente), in nessun caso il gestore di questo sito, o del server su cui risiede, può essere ritenuto responsabile dei contenuti qui presenti, oltretutto il gestore del sito non è in grado di risalire all'identità del mittente dei documenti. Tutti i documenti ed i file di questo sito non presentano alcun tipo di garanzia, pertanto ne è sconsigliata a tutti la lettura o l'esecuzione, lo staff non si assume alcuna responsabilità per quanto riguarda l'uso improprio di tali documenti e/o file, è doveroso aggiungere che ogni riferimento a fatti cose o persone è da considerarsi PURAMENTE casuale. Tutti coloro che potrebbero ritenersi moralmente offesi dai contenuti di queste pagine, sono tenuti ad uscire immediatamente da questo sito.
Vogliamo inoltre ricordare che il Reverse Engineering è uno strumento tecnologico di grande potenza ed importanza, senza di esso non sarebbe possibile creare antivirus, scoprire funzioni malevole e non dichiarate all'interno di un programma di pubblico utilizzo. Non sarebbe possibile scoprire, in assenza di un sistema sicuro per il controllo dell'integrità, se il "tal" programma è realmente quello che l'utente ha scelto di installare ed eseguire, né sarebbe possibile continuare lo sviluppo di quei programmi (o l'utilizzo di quelle periferiche) ritenuti obsoleti e non più supportati dalle fonti ufficiali.