F | acciamo il punto. Argomenti correlati:
|
- Parentesi graffe
- Racchiudono un blocco di istruzioni e sono usate in molti casi, ad esempio nelle funzioni. In particolare:
- {
- indica l'inizio (corrisponde al begin del Pascal
- }
- indica la fine (corrisponde all' end del Pascal
- Variabile booleana
- Che assume solo i valori true (vero) o false (falso)
- metodo eval()
- Valuta una data stringa trattandola come se fosse un'istruzione. La sintassi è:
Risultato=eval(stringa)
Nell'esempio il dato inserito viene trattato come numero: se quindi invece di un numero viene inserita, ad esempio, una frase, si riceve un messaggio d'errore ed il programma termina.
APPROFONDIMENTO
voto != -1
voto diverso da -1. Si tratta di un'espressione booleana; nel nostro esempio, visto che è stata inserita dopo la parola chiave while, essa costituisce la condizione per la continuazione del ciclo: il ciclo continua fino a quando essa è vera.
window.prompt
Metodo dell'oggetto window
Crea una finestra dove l'utente può inserire un testo oppure accettare il valore di default proposto.
SINTASSI: window.prompt('message'[, inputDefault]) dove message è un testo qualunque ed inputDefault rappresenta un valore di default che può essere proposto all'utente stesso. Tale valore è opzionale, come si evince dal fatto che è racchiuso in parentesi graffa.
L'utente può premere uno dei due tasti presenti: OK oppure Annulla. Se viene premuto il tasto Annulla viene restituito il valore null.
Fino a quando non si è premuto un tasto è impossibile qualumque altra azione del browser.
Nel nostro esempio il message è <'Inserisci un voto, per terminare premi -1'> mentre inputDefault è -1: in questo modo l'utente, quando vuole terminare l'immissione dei voti, deve semplicemente premere il tasto OK.
APPROFONDIMENTO
if {
...
}
selezione binaria
window.alert
Metodo dell'oggetto window
Crea una finestra di avviso che contiene un messaggio ed il tasto OK
Fino a quando non si è premuto tale tasto è impossibile qualumque altra azione del browser.
SINTASSI: window.alert('message') dove message è un testo qualunque
Nel nostro esempio il message è <'Il voto massimo è ' + max>. Le due stringhe, composte di una parte fissa ed una variabile, vengono concatenate attraverso il +
APPROFONDIMENTO
IN QUALE CASO IL PROGRAMMA NON FUNZIONA?
Se l'utente non immette alcun voto ma preme solo il tasto OK la finestra di prompt si apre due volte: la prima volta -1 viene memorizzato nella variabile max e la seconda volta nella variabile voto. Se preferiamo interrompere subito l'esecuzione del programma conviene aggiungere la seguente istruzione:
if (max!=-1) {
... inseriamo qui tutto il programma prima dell'ultima graffa di chiusura
}
else {
window.alert('Non hai immesso un voto valido')
}
D'altra parte l'utente potrebbe anche interrompere l'esecuzione del programma subito alla prima immissione del voto, scrivere caratteri non numerici o immettere numeri negativi. Dovremo approfondire l'argomento.
|
|
|
Mentre nel ciclo while la condizione viene testata subito e quindi, se il test restituisce un risultato falso, il ciclo termina immediatamente, nel ciclo do ... while le istruzioni vengono eseguite almeno una volta prima che venga controllata la condizione. Se poi questa risulta vera le istruzioni vengono eseguite di nuovo fino a quando la condizione non risulti falsa.
Nella maggioranza dei casi l'uso di una o l'altra struttura dipende dalle preferenze personali del programmatore ed anzi si può passare con semplicità dall'una all'altra struttura.
Come già visto nel caso del ciclo while ci si deve attenere alle seguenti regole fondamentali:
-
Inizializzare le variabili il cui valore determinerà la condizione di uscita dal ciclo (dette variabili di controllo) prima di dichiarare il ciclo;
- fare in modo che il blocco delle istruzioni all'interno del ciclo comprenda la modifica delle variabili di controllo;
- inserire la condizione di uscita.
| |
ESEMPIO
|
Vogliamo trovare il voto più alto ottenuto in una gara di matematica da alcuni studenti, non sappiamo quanti.
Usiamo questa volta il ciclo do ... while.
PER GLI ARGOMENTI CORRELATI CONTROLLA NELLA SEZIONE "Facciamo il punto" A SINISTRA NELLA PAGINA
Visto che non sappiamo il numero dei dati da immettere, decidiamo di terminare l'immissione all'inserimento del numero -1 (scegliamo un valore che di sicuro non può essere un voto).
- Prima di iniziare il ciclo inizializziamo le variabili necessarie:
- Visto che l'azione di chiedere i voti sarà eseguita almeno una volta, non è più necessario inizializzare la variabile di nome voto.
- la variabile, di nome max, nella quale memorizzeremo il voto massimo, sarà inizializzata dal primo voto che inseriremo; in seguito confronteremo ogni voto inserito con max: se tale voto lo supera questo diventerà il massimo attuale. Scriviamo l'istruzione
max=eval(window.prompt('Inserisci un voto, per terminare premi -1','-1'));
- Possiamo a questo punto inserire la condizione d'uscita per il ciclo. Scriviamo l'istruzione while (voto !=-1) {
- Prepariamo il blocco delle istruzioni:
- voto=eval(window.prompt('Inserisci un voto, per terminare premi -1','-1'));
if (voto>max) {
max=voto
}
Viene richiesto l'inserimento di un nuovo voto: se il voto inserito è maggiore di quello memorizzato nella variabile max questo voto diventa il nuovo massimo.
- Le istruzioni per il ciclo sono terminate: esso continuerà a lavorare fino a quando l'utente non avrà inserito il numero -1.
- Ora si tratta di visualizzare il risultato sullo schermo. Scriviamo l'istruzione
window.alert('Il voto massimo è ' + max);
Prepariamo la funzione JavaScript che ci occorre con il seguente codice, da inserire fra i tags <HEAD> ed </HEAD> :
<script language=JavaScript>
function massimo() {
max=eval(window.prompt('Inserisci un voto, per terminare premi -1','-1'));
do {
voto=eval(window.prompt('Inserisci un voto, per terminare premi -1','-1'));
if (voto>max) {
  max=voto
}
}
while (voto !=-1)
window.alert('Il voto massimo è ' + max);
}
</script>
Creiamo un bottone con il seguente codice, da inserire fra i tags <BODY> e </BODY> :
<form name="MioForm">
<input type=button value="Massimo" name="bottone" OnClick="javascript:massimo()">
</form>
|
webfract@tin.it
| |