[英]Java: Variable is already defined in method
我正在尝试制作一个程序,它可以在 1000-9999 之间生成一个没有重复数字的随机数。 规则是我必须将随机数标记为字符串,然后使用 while 循环来确定是否有任何数字重复。
//generating random number
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 + "
}
我知道 while 参数非常长,但有必要确保没有重复的数字。 我假设我可以重新生成一个新的随机数并在 while 循环中再次测试它,但我收到错误,变量 answer1、answer 和 answer2 已经在我的主要方法中定义。 有没有人知道我可以做些什么来生成一个新的随机数,直到没有一个数字重复?
您已经在line 2
定义了变量answer2
,并且在您的 while 循环中尝试重新定义变量answer2
,即:
int answer2 = (int)answer1;
你可以这样做:
answer2 = (int)answer1;
我不确定这是否是主要问题(您可能有多个),但是 ; 不应终止 while 语句。 应该是while (..) { }
, while (..); { }
不是while (..); { }
while (..); { }
。
至于你关于重定义的错误,你不能再次定义已经在更大范围内定义的变量。 对于这个例子,第 2 行, int answer2 = (int) answer1
已经定义了 answer2。 在 while 循环中,您只需再次使用该变量,而无需定义它。 所以应该是:
while (...)
{
////generating random number
answer1 = (Math.random() * 9000)+1000;
//converting answer
answer2 = (int)answer1;
answer = answer2 + " ";
}
这个问题有很多错误,令人难以置信。
但具体来说:您在同一范围内重新定义变量,这是不允许的。
answer.toCharArray(); // here you use answer variable
而不是你的循环关闭
while(conditon);
再一次在 { } 中定义 answer 变量
String answer = answer2 + " "; // duplicate
您应该使用 if 作为条件并终止 ; 从喜欢
while(condition){
}
并使用
answer = answer2 + " ";
代替
String answer = answer2 + " ";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.