obtenir des commentaires de stdin
Je veux obtenir l'entrée stdin de la pour les de
3
10 20 30
le premier nombre est le nombre de chiffres dans la deuxième ligne. Voici ce que j'ai, mais il est bloqué dans la boucle while... donc, je crois. J'ai couru en mode debug et le tableau n'est pas attribuer toutes les valeurs...
import java.util.*;
public class Tester {
public static void main (String[] args)
{
int testNum;
int[] testCases;
Scanner in = new Scanner(System.in);
System.out.println("Enter test number");
testNum = in.nextInt();
testCases = new int[testNum];
int i = 0;
while(in.hasNextInt()) {
testCases[i] = in.nextInt();
i++;
}
for(Integer t : testCases) {
if(t != null)
System.out.println(t.toString());
}
}
}
source d'informationauteur miatech | 2012-10-27
Vous devez vous connecter pour publier un commentaire.
Qu'il a à faire avec l'état.
Il vous permet de conserver en boucle et puis, après trois itérations " je " de la valeur est égale à 4 et cas de tests[4] jette ArrayIndexOutOfBoundException.
La Solution pour ce faire pourrait être
Mise à jour de votre temps pour lire uniquement les numéros souhaités comme ci-dessous:
La condition supplémentaire
&& i < testNum
ajouté danswhile
arrêter de lire les chiffres une fois que vous avez lu les chiffres équivalent à votre taille de la matrice, sinon il va aller indefininte et vous obtiendrezArrayIndexOutOfBoundException
lorsque le nombre de tableautestCases
est plein c'est à dire que vous avez terminé la lecture avectestNum
numéros.