À l'aide d'une boucle For pour remplir un tableau
Donc j'ai essayé d'obtenir un tableau de valeurs à partir d'un scanner et remplissez-les dans le tableau. Si l'utilisateur entre 10 valeurs entières ou -1 la boucle se termine et le tableau des arrêts de remplissage dans les valeurs. Voici le code que j'ai écrit jusqu'à présent pour ce faire:
//Input scanner and input controls
Scanner scan = new Scanner(System.in);
System.out.print("Please enter 10 integers \n");
int maxnum = 10;
boolean done = false;
int count = 0;
int[] arrays = new int[maxnum];
//Store values in count array
for (count = 0; (count < maxnum && !done); count++) {
arrays[count] = scan.nextInt();
if (arrays[count] == -1) {
arrays[count] = 0;
done = true;
}
}
//print count values
for (count = 0; (count < maxnum); count++) {
if (arrays[count] != 0) {
System.out.println(arrays[count]);
}
}
Ce que j'ai fait de sorte que -1 n'est pas stocké dans le tableau est de définir la valeur de -1 à 0, puis dites à ma prochaine boucle de ne pas imprimer toutes les valeurs de 0. Je sais qu'il y a à être une meilleure façon de le faire et je comprends que je suis toujours stocker les valeurs nulles, mais pour la vie de moi je ne peux pas comprendre comment prévenir la boucle de stocker des valeurs nulles dans la matrice
break;
à l'intérieur de l'instruction si l'intérieur de la première boucleInt tableaux ont une valeur par défaut de 0...donc, quels que soient les indices qui sont inutilisés sont toujours en cours à 0 en fin de compte...
OriginalL'auteur Bhetzie | 2014-03-07
Vous devez vous connecter pour publier un commentaire.
comment vous sur l'entreposage de l'entrée d'une autre variable et la vérification avant le remplissage de la matrice?
OriginalL'auteur Mc Kevin
Depuis le nombre d'entrées peut être moins de
maxnum
, un moyen d'aborder le problème serait de stocker le nombre de chiffres que l'utilisateur a entré, sans compter les-1
, puis arrêter le deuxième boucle avant que le dernier numéro est imprimé. De cette façon, vous ne se soucient pas si-1
est dans le tableau ou pas, car il ne serait pas obtenir tout de même imprimés.Vous déjà garder la
count
, tout ce que vous devez faire est de l'utiliser dans votre deuxième boucle:OriginalL'auteur dasblinkenlight
Types de données primitifs (y compris leurs tableaux) sont toujours affectés à leur valeur par défaut si une autre affectation ne soit pas arrivé avant de référencement. Dans le cas de
int
, c'est la valeur par défaut est 0 (même avecbyte
,short
,char
,long
), et de 0,0 pourfloat
etdouble
. L'instance d'un objet de valeur par défaut estnull
. Parce que vous êtes à l'aide d'unint[]
tableau, tous les objets sont automatiquement affectés à 0 si vous ne l'avez pas déjà fait.Mais puisque vous ne voulez pas enregistrer un 0 dans le tableau, alors ne le faites pas. Utiliser un autre numéro, -1 est très bien pour cela, sauf si vous avez d'autres préférences.
OriginalL'auteur Arbiter
Il stocke uniquement des nombres qui ne sont pas -1. Lorsque -1 est entré, la boucle se termine.
De sortie:
OriginalL'auteur aliteralmind