si ma non conoscendolo non so come si usa ne qual'è la funzione XD da come l'hai detto sembra piuttosto facile, ma dove lo dovrei inserire?(è questo che non capisco) e come faccio poi a "scartare" il risultato se l'utente inserisce un decimale?
si ma non conoscendolo non so come si usa ne qual'è la funzione XD da come l'hai detto sembra piuttosto facile, ma dove lo dovrei inserire?(è questo che non capisco) e come faccio poi a "scartare" il risultato se l'utente inserisce un decimale?
si ma non conoscendolo non so come si usa ne qual'è la funzione XD da come l'hai detto sembra piuttosto facile, ma dove lo dovrei inserire?(è questo che non capisco) e come faccio poi a "scartare" il risultato se l'utente inserisce un decimale?
Per conoscere tutti i metodi che una classe mette a disposizione c'è la documentazione. La documentazione della classe Scanner elenca tutti i metodi che tale classe espone e che puoi usare.
Come si usa? Esattamente come un qualunque altro metodo.
nextInt() è un metodo che ritorna un int.
nextLine() è un metodo che ritorna un String
hasNextInt() è un metodo che ritorna un boolean.
Come si scarta l'input? Te l'ha già detto andbin: si usa un next() a vuoto:codice:if ( read.hasNextInt() ) { // L'utente ha inserito un intero } else { // L'utente NON ha inserito un intero }
Ciao.codice:// Scarto l'attuale input dello scanner read.next();![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
e se associassi ad n il valore di hasnextInt? e poi dicessi: do{ chiedi un numero
}while(n = false)
La variabile "n" del tuo primo codice è intera, non booleana... non può, quindi, ricevere valori booleani.
Ad ogni modo, il test per verificare se l'utente ha effettivamente inserito un intero oppure no va fatto prima di assegnare alla variabile intera il valore indicato dall'utente... altrimenti otterrai un'eccezione nel caso in cui il valore sia stato inserito in modo errato.
Ciao.![]()
"Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza
Sì anche. (nota: n == false)Originariamente inviato da John360
e se associassi ad n il valore di hasnextInt? e poi dicessi: do{ chiedi un numero
}while(n = false)
In base al ritorno di hasNextInt():
- se true: invochi nextInt() e hai l'intero ed esci dal ciclo.
- se false: invochi next() (butta il token) e ripeti il ciclo.
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
ah si certo... e quindi l'if devo inserirlo dentro al while?
mi state confondendo XD posso farlo o no quello che ho detto??
Le possibilità sono due: o per uscire dal ciclo fai un break; (e la condizione del ciclo è fissa a true), oppure tieni in una variabile booleana il ritorno di hasNextInt e nella condizione del ciclo lo testi.Originariamente inviato da John360
mi state confondendo XD posso farlo o no quello che ho detto??
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
cioè così??:
però mi da un errore quando compilo: dice che non riesce a trovare il simbolo(?) hasnextIntcodice:import java.util.*; public class Fattoriale{ public static void main(String args[]){ Scanner read = new Scanner(System.in); int n; System.out.println("__CALCOLO DEL FATTORIALE__"); do{ System.out.println("Inserire un numero intero positivo"); boolean m = hasnextInt(); if(m == true) n = read.nextInt(); } while(n < 0); int fattoriale=1; for(int i=n; i >= 1; i--){ fattoriale = i * fattoriale; } System.out.println(n+"!=" + fattoriale); } }