PDA

View Full Version : [JAVA] [Risolto] Incremento variabile ogni secondo.


klaudioo
01-06-2012, 09:51
Salve a tutti,
Mi sto avvicinando alla programmazione,e a java, e ho in mente un piccolo programmino.
Ora quello che mi interesserebbe sapere è come faccio a incrementare una variabile ogni secondo di più 2.
Per essere più chiaro:
ho la variabile contatore che parte da 0,
Vorrei visualizzare a schermo questa variabile che dopo ogni secondo diventa piu grande di 2 finche non finisce il tempo da me stabilito inizialmente.
Spero di essere stato chiaro
Grazie

Mettiu_
01-06-2012, 10:06
public static void main(String args[])
{
int k = 0;
while(k < VALORE_CHE_DEVE_RAGGIUNGERE_k)
{
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
k = k+2;
System.out.println("k = " + k);
}
}

klaudioo
01-06-2012, 10:21
Perfetto veramente!!
Posso chiederti anche una piccola spiegazione del codice? Saresti gentilissimo.

Mettiu_
01-06-2012, 10:32
Perfetto veramente!!
Posso chiederti anche una piccola spiegazione del codice? Saresti gentilissimo.

Certo!
Penso che sia quasi tutto auto-esplicativo, forse la parte che ti appare più oscura è il corpo del while. Il metodo statico sleep() della classe Thread mette il thread corrente in attesa per il numero di millisecondi specificato (1000 = 1 secondo in questo caso). L'istruzione è stata inserita in un blocco try-catch perchè il metodo sleep() è interrompibile: cioè se quando il thread è in attesa, un altro thread chiama interrupt() su questo, esso lancia quell'eccezione (in realtà succedono anche altre cose ma lasciamo stare adesso xD). Quando il thread viene svegliato (dopo la sleep), esegue l'incremento del contatore k e lo stampa a video. Raggiunto un certo valore di k, la condizione del while fallisce e si esce dal ciclo. Spero di essermi spiegato bene, in caso chiedi :)

klaudioo
01-06-2012, 10:38
Si infatti mi riferivo al corpo del while.
Sei stato chiaro, concettualmente ho capito il funzionamento, ma io devo fare qualche ripasso :)
Grazie ancora