2017-09-27 4 views
-1

J'ai un code qui est un tableau qui peut contenir jusqu'à 8 valeurs entières générées aléatoirement entre nombre à nombre; Ensuite, il demandera à l'utilisateur d'entrer un nombre.après l'entrée, il trouvera l'emplacement du tableau où le numéro est entré par l'utilisateur. Ensuite, dès que le premier numéro du tableau correspond au numéro d'entrée, l'algorithme s'arrêtera et affichera l'emplacement. En revanche, si la valeur ne peut pas être trouvée, affichez simplement non trouvé.Trouver l'index du tableau - java

voici le code;

import java.util.Scanner; 
import java.util.Random; 
public class q3_2 { 
static Random generator = new Random(); 
static Scanner input = new Scanner(System.in); 
public static void main(String[] args){ 
int[] number = new int [8]; 
Random randomGenerator = new Random(); 
for (int idx = 0 ; idx < number.length ; ++idx){ 
int randomInt = randomGenerator.nextInt(50)+1; 
System.out.print(randomInt + " "); 
} 
System.out.println(); 
System.out.println("your input please: "); 
int inputInt; 
inputInt = input.nextInt(); 
int idxToFind = -1; 
for (int idx = 0 ; idx < number.length ; ++idx){ 
idxToFind= idx; 
break; 
} 
System.out.println(inputInt + " is on the " + idxToFind); 

ici est la sortie

enter image description here

de droit, il doit afficher le 7 est sur 1, mais il montrant 0. Je ne sais pas où est l'erreur que je fais. Appréciez vos conseils et suggestions.

+1

Vous entrez un nombre entier dans 'inputInt'. Où faites-vous quelque chose avec 'inputInt' après cela? – ajb

+3

Vous n'avez absolument aucune logique conditionnelle dans vos boucles, comment voulez-vous trouver un chiffre si vous ne comparez rien? – Rafael

+2

Veuillez mettre en retrait votre code. C'est très difficile à lire comme ça. – shmosel

Répondre

1

initialiser votre tableau (souligné @AJB) et ajouter une logique conditionnelle

for (int idx = 0 ; idx < number.length ; ++idx){ 
    int randomInt = randomGenerator.nextInt(50)+1; 
    number[idx] = randomInt;//INITIALIZED 
    System.out.print(randomInt + " "); 
} 

...

for (int idx = 0 ; idx < number.length ; ++idx){ 
    if (number[idx] == idxToFind) { 
     idxToFind= idx; 
     break; 
    } 
} 

alternativement, vous pouvez utiliser indexOf, mais vous devriez faire plus de recherche avant de demander ce genre de question. On dirait que vous prenez un moyen facile de faire un devoir.

+0

Rafael; Merci pour le conseil; maintenant je peux surmonter mon problème après la recherche (c'est beaucoup) et les tests; qui est debug, debug et debug ... –