Java: la Variable est déjà défini dans la méthode

Je suis en train de faire un programme qui fait un nombre aléatoire entre 1000-9999 sans la répétition des nombres. Les règles sont-je l'étiquette, le nombre aléatoire comme une Chaîne de caractères, et ensuite utiliser une boucle while pour déterminer si l'un des numéros de répétition.

//génération du nombre aléatoire
double answer1 = (Math.random() * 9000)+1000;

  //converting answer
  int answer2 = (int)answer1;
  String answer = answer2 + " ";

  //Labeling arrays
  answer.toCharArray();

  //**NEW** checking random number
  while (answer.charAt(0) == answer.charAt(0) || answer.charAt(0) == answer.charAt(1) || answer.charAt(0) == answer.charAt(2) || answer.charAt(0) == answer.charAt(3) ||  answer.charAt(1) == answer.charAt(1) ||  answer.charAt(1) == answer.charAt(2) ||  answer.charAt(1) == answer.charAt(3) ||  answer.charAt(2) == answer.charAt(2) ||  answer.charAt(2) == answer.charAt(3) ||  answer.charAt(3) == answer.charAt(3)); //you have my apologies
  {
     ////generating random number
     double answer1 = (Math.random() * 9000)+1000;

     //converting answer
     int answer2 = (int)answer1;
     String answer = answer2 + " ";
  }

Je sais le bien que les paramètres sont extrêmement long, mais il était nécessaire de s'assurer qu'aucun des nombres répétés. Je suppose que je pourrais recréer un nouveau nombre aléatoire et de le tester à nouveau dans la boucle while, mais je reçois l'erreur que les variables answer1, répondre, et answer2 sont déjà définis dans ma méthode principale. Quelqu'un aurait-il une astuce de ce que je peux faire pour générer un nouveau nombre aléatoire jusqu'à ce que aucun des nombres de répétition?

  • Avez-vous lu la trace de la pile? Il vous indique la ligne qui a le problème.
  • Comment est une condition qui commence avec answer.charAt(0) == answer.charAt(0) jamais être faux?
InformationsquelleAutor user3547815 | 2014-04-18