Entra

View Full Version : [java] Problema numeri pari e dispari.


Thebaro
22-04-2008, 14:30
Buonasera, sto cercando di imparare java... ma ho dei problemi:

vi posto il listato:

il problema è che inserendo un numero pari il programma esce... mi aiutate a risolvere il problema ?

grazie.

package paridis;





import java.io.BufferedReader;

import java.io.InputStreamReader;;



public class testy

{







public testy()

{



}



public static void main(String args[])

{



int NumeroUtente = -1;

boolean Pari = true;



while(NumeroUtente != 0)

{

try

{

InputStreamReader isr = new InputStreamReader( System.in );

BufferedReader stdin = new BufferedReader( isr );

System.out.println("Inserire un numero (0 per uscire): ");

NumeroUtente = Integer.parseInt(stdin.readLine());

System.out.println("Hai inserito: " + NumeroUtente);

}

catch(Exception e){}



while(NumeroUtente > 0)

{

NumeroUtente = NumeroUtente - 2;



if(NumeroUtente < 0)

Pari = false;

else

Pari = true;

}



if(Pari == true)

System.out.println("Il numero è pari");

else

System.out.println("Il numero è dispari");





}

}

}

Ziosilvio
22-04-2008, 14:37
Tag "code" questo sconosciuto, eh?

Per favore, indenta un po' meglio, che così è molto fastidioso da leggere.

EDIT: ad ogni modo, ti faccio osservare che tu usi sempre la stessa variabile per stabilire sia il numero di cui determinare se sia pari o dispari, sia se sia necessario uscire o no.
Oltretutto, il tempo di esecuzione sarà veramente molto lungo se inserisci un numero pari negativo...

VICIUS
22-04-2008, 14:43
Per capire quali numeri sono pari e quali dispari puoi usare l'operatore % che ti ritorna il resto della divisione.

Thebaro
22-04-2008, 14:44
Per capire quali numeri sono pari e quali dispari puoi usare l'operatore % che ti ritorna il resto della divisione.

cioè? dove lo potrei usare?

Thebaro
22-04-2008, 14:45
Tag "code" questo sconosciuto, eh?

Per favore, indenta un po' meglio, che così è molto fastidioso da leggere.

EDIT: ad ogni modo, ti faccio osservare che tu usi sempre la stessa variabile per stabilire sia il numero di cui determinare se sia pari o dispari, sia se sia necessario uscire o no.
Oltretutto, il tempo di esecuzione sarà veramente molto lungo se inserisci un numero pari negativo...

non è inseribile un numero pari negativo.

consigli 2 variabili ?

VICIUS
22-04-2008, 14:46
Invece del while. basta fare così:
if ((numero % 2) == 0) {
System.out.println("pari");
} else {
Systemout.println("dispari");
}

khelidan1980
22-04-2008, 14:56
non è inseribile un numero pari negativo.


è inseribile eccome....

Thebaro
22-04-2008, 14:58
è inseribile eccome....

allora... diverse cose mi sfuggono....

come evitarlo?

avete anche buoni consigli su qualcosa per apprendere java reperibile online senza infrangere la legge?

vladix
22-04-2008, 15:02
cmq x rispondere alla prima domanda ...

il problema è che inserendo un numero pari il programma esce...

tu cicli questo while finche il numero non diventa 0 , quindi si avvera la condizione del while + esterno ed il programma esce ( girando una sola volta sul while esterno )

while (NumeroUtente > 0) {

NumeroUtente = NumeroUtente - 2;



if (NumeroUtente < 0) {
Pari = false;
} else {
Pari = true;
}

}


e qmc quoto ziosilvio usa i tag code quando posti il codice se no nn si capisce niente , e giusto xche stai imparando java ... in java i nomi di variabili e metodi nn iniziano mai con la maiuscola e evita di indentare il codice cosi
try

{

x scrivere 2 righe di codice ti ci vuole una pagina intera
, togli almeno la riga tra try e la parentesi ( se proprio non vuoi usare il standard java che la parentesi segue il try ... )

try{

khelidan1980
22-04-2008, 15:03
avete anche buoni consigli su qualcosa per apprendere java reperibile online senza infrangere la legge?

questo è un ottimo libro free:

http://www.claudiodesio.com/

Thebaro
22-04-2008, 15:23
questo è un ottimo libro free:

http://www.claudiodesio.com/

grazie ci guardo...