Ciao a tutti....
sono nuova nel forum, e ho da poco iniziato a studiare Java.
Sto diventando letteralmente matta con i metodi next() e nextInt() della funzione scanner .
Mi chiedevo se qualcuno potesse aiutarmi a capire.
Ho ad esempio il seguente programma:
import java.util.Scanner;
public class FrazioneContinua{
public static void main(String args[]){
Scanner in=new Scanner(System.in);
double divisione=0, divisore=1;
while (in.hasNextInt()){
double val=(double) in.nextInt();
divisore=(val+divisione);
divisione=1/divisore;
}
System.out.println("La Frazione continua calcolata con un ciclo �="+divisore);
}
}
per logica... mi aspetterei che se da input inserisco "1 2 3 " e poi premo invio, venga eseguito il while.. e dopo aver letto "3" , esca dal while (hasNextInt dovrebbe essere false). e a questo punto dovrebbe stampre sul monitor "La frazione continua... " Corretto?
Invece sulla linea di comando, dopo il 3, il programma si "blocca" attendendo un nuovo input. Rimane costantemente in attesa di un nuovo input.
Lo stesso mi succede in maniera analoga quando ho stringhe e uso "hasNext"
ho trovato una sorta di soluzione usando "useDelimiter" e definendo lo scanner cosi:
Scanner in=new Scanner(System.in).useDelimiter("\\s");
ma � corretto?
Grazie,