Input/Output

4
Input/Output standard Introduzione I programmi non avrebbero alcuna utilità se non potessero acquisire informazioni dall'esterno (input di dati) o fornire informazioni all'esterno (output di dati). In generale, con input si indicano i dati che occorrono ad un programma per poter procedere con l’elaborazione; con output si indicano i risultati dell’elaborazione stessa. In questa dispensa ci occuperemo dell’I/O standard, ossia di input di dati attraverso la tastiera e di output di dati mediante il monitor del computer. Inizieremo con l’output, più semplice, per poi passare ai diversi metodi di immissione di input. Output a video Per visualizzare i risultati di un’elaborazione sul monitor, si utilizza l’istruzione System.out.println, la cui sintassi è: System.out.println(output); dove output può essere una stringa, cioè una sequenza di caratteri alfanumerici, racchiusa tra virgolette (es. “codice A123Hfggg%”); un identificatore di variabile/costante. Attenzione! System ha iniziale maiuscola perché è una classe di Java. Se scrivete system, vi viene segnalato un errore. Esempio Il codice: System.out.println("questo e’ il risultato"); visualizza la stringa questo è il risultato. Esempio Il codice: System.out.println(numero); visualizza il valore della variabile numero. La variabile numero deve essere stata dichiarata in precedenza e deve anche avere un valore. In caso contrario, viene segnalato un errore. Autore: Cinzia Bocchi Ultimo aggiornamento: 06/07/11 input output 1

description

Output a video, Input da tastiera, Input con Scanner, I/O con finestre di dialogo.

Transcript of Input/Output

Page 1: Input/Output

Input/Output standard

Introduzione

I programmi non avrebbero alcuna utilità se non potessero acquisire informazioni dall'esterno (input di dati) o fornire informazioni all'esterno (output di dati). In generale, con input si indicano i dati che occorrono ad un programma per poter procedere con l’elaborazione; con output si indicano i risultati dell’elaborazione stessa.

In questa dispensa ci occuperemo dell’I/O standard, ossia di input di dati attraverso la tastiera e di output di dati mediante il monitor del computer. Inizieremo con l’output, più semplice, per poi passare ai diversi metodi di immissione di input.

Output a video

Per visualizzare i risultati di un’elaborazione sul monitor, si utilizza l’istruzione System.out.println, la cui sintassi è:

System.out.println(output);

dove output può essere • una stringa, cioè una sequenza di caratteri alfanumerici, racchiusa tra

virgolette (es. “codice A123Hfggg%”);• un identificatore di variabile/costante.

Attenzione!System ha iniziale maiuscola perché è una classe di Java. Se scrivete system, vi viene segnalato un errore.

EsempioIl codice:

System.out.println("questo e’ il risultato");

visualizza la stringa questo è il risultato.

EsempioIl codice:

System.out.println(numero);

visualizza il valore della variabile numero. La variabile numero deve essere stata dichiarata in precedenza e deve anche avere un valore. In caso contrario, viene segnalato un errore.

Autore: Cinzia BocchiUltimo aggiornamento: 06/07/11

input output

1

Page 2: Input/Output

L’istruzione System.out.println ammette un unico argomento; per visualizzare più argomenti bisogna utilizzare l’operatore di concatenazione +.

EsempioIl codice:

System.out.println(“questo e’ il risultato “ + numero);

visualizza la stringa questo è il risultato seguita dal valore della variabile numero. L’operatore di concatenazione + converte automaticamente ogni operando in una stringa.

Osservazioni Non utilizzate nelle stringhe lettere accentate; sostituite l’accento con l’apice

(‘). Quando utilizzate l’operatore di concatenazione di stringhe ricordate di

lasciare almeno uno spazio bianco tra le stringhe che desiderate appaiano a video.

Input da tastiera

Le versioni fino alla 1.4 di Java non dispongono di specifiche istruzioni per l’acquisizione di input da tastiera; per semplificare le operazioni occorre creare una classe apposita. A partire dalla versione 5 di Java, è disponibile la classe Scanner. Essa appartiene alla libreria (package) java.util e fornisce vari metodi per l’input di tipi primitivi e stringhe.

Metodi della classe Scannermetodo significato

nextBoolean() legge un numero immesso da tastiera e lo trasforma in booleannextByte() legge un numero immesso da tastiera e lo trasforma in bytenextShort() legge un numero immesso da tastiera e lo trasforma in shortnextInt() legge un numero immesso da tastiera e lo trasforma in intnextLong() legge un numero immesso da tastiera e lo trasforma in longnextFloat() legge un numero immesso da tastiera e lo trasforma in floatnextDouble() legge un numero immesso da tastiera e lo trasforma in doublenextLine() legge una stringa immessa da tastiera

Per poter usare i metodi della classe Scanner, occorre aggiungere due righe di codice nel programma Java, così come illustrato in seguito:

import java.util.*;class nome_classe{

public static void main (String args[]){

Scanner console= new Scanner(System.in);.................................

}}

Per acquisire in input un intero, occorre scrivere:

Autore: Cinzia BocchiUltimo aggiornamento: 06/07/11

2

Page 3: Input/Output

ID_varIntera = console.nextInt();Per tutti gli altri tipi, si procede in modo analogo.

I/O con finestre di dialogo

Java consente di utilizzare delle finestre di dialogo per l’I/O, attraverso la classe JOptionPane del package javax.swing. I metodi disponibili sono:

Metodi della classe JOptionPanemetodo significato

showInputDialog(messaggio) mostra una finestra nella quale è visualizzato il messaggio specificato e con un apposito campo che consente di inserire una stringa (usata per l’input)

showMessageDialog(null,messaggio) mostra una finestra nella quale è visualizzato il messaggio specificato (usata per l’output)

Per poter usare i metodi della classe JOptionPane, occorre aggiungere una riga di codice nel programma Java, così come illustrato in seguito:

import javax.swing.*;class nome_classe{

public static void main (String args[]){

.................................}

}

Per acquisire in input una stringa, occorre scrivere:

String ID_stringa = JOptionPane.showInputDialog(messaggio);

EsempioSupponiamo che il messaggio sia “Inserisci stringa”. A video apparirà la finestra

Per produrre in output una stringa, occorre scrivere:

JOptionPane.showMessageDialog(null,messaggio);Autore: Cinzia BocchiUltimo aggiornamento: 06/07/11

3

Page 4: Input/Output

EsempioSupponiamo che il messaggio sia “Ciao PIPPO, come stai?”. A video apparirà la finestra

Il principale problema legato alle finestre di dialogo è che consentono di acquisire in input solo stringhe; anche un numero digitato nel campo della finestra di input è interpretato come stringa. Questo implica che è necessario convertire la stringa nel tipo necessario per l’elaborazione. Nella tabella seguente sono illustrati i principali metodi per la conversione di stringhe.

Metodi per la conversione di stringhemetodo significato

Byte.parseByte(stringa) converte stringa in un byteShort.parseShort(stringa) converte stringa in uno shortInteger.parseInt(stringa) converte stringa in un intLong.parseLong(stringa) converte stringa in un longFloat.parseFloat(stringa) converte stringa in un floatDouble.parseDouble(stringa) converte stringa in un doubleBoolean.parseBoolean(stringa) converte stringa in un boolean

EsempioIl seguente frammento di codice richiede in input un numero, poi lo incrementa di 1 e infine lo produce in output.

String numStr = JOptionPane.showInputDialog(“Immetti numero”);int num= Integer.parseInt(numStr);num= num+1;numStr=““+num;JOptionPane.showMessageDialog(null,numStr);

_______________________________________________________________________Quest'opera è stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.

Autore: Cinzia BocchiUltimo aggiornamento: 06/07/11

4