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?
Vous devez vous connecter pour publier un commentaire.
Vous avez déjà défini votre variable
answer2
dansline 2
, et dans ta boucle while vous essayez de redéfinir la variableanswer2
, j'.e:Vous pouvez le faire comme :
Je ne suis pas sûr si c'est la question principale (vous pouvez avoir plus d'un), mais une, ne doit pas mettre fin à une instruction while. Il devrait être
while (..) { }
, paswhile (..); { }
.Que votre erreur à propos de la redéfinition, vous ne pouvez pas définir la variable de nouveau qui a été déjà défini dans un champ d'application plus large. Pour cet exemple, la ligne 2,
int answer2 = (int) answer1
déjà défini answer2. Dans la boucle while, il vous suffit d'utiliser la variable de nouveau, et vous n'avez pas besoin de la définir. Il devrait donc être:Il y a donc beaucoup de mal avec cette question qu'il est assez hallucinant.
Cependant spécifiquement: vous êtes à la redéfinition des variables dans le même champ d'application qui n'est pas autorisé.
et que votre boucle fermée
que de nouveau vous définissez réponse variable à l'intérieur de { }
vous devriez utiliser si pour l'état et de mettre fin à l' ; tout comme
et l'utilisation
au lieu de