Java:方法中已定义变量
我正在尝试制作一个程序,它可以在1000-9999之间生成一个随机数,并且没有重复的数字。规则是我必须将随机数标记为字符串,然后使用while循环来确定是否有任何数字重复Java:方法中已定义变量,java,random,Java,Random,我正在尝试制作一个程序,它可以在1000-9999之间生成一个随机数,并且没有重复的数字。规则是我必须将随机数标记为字符串,然后使用while循环来确定是否有任何数字重复 //generating random number double answer1 = (Math.random() * 9000)+1000; //converting answer int answer2 = (int)answer1; String answer = answer2 + " "; //Labeling
//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已经在我的主方法中定义。有没有人知道我能做些什么来生成一个新的随机数,直到没有一个随机数重复?我不确定这是否是主要问题(你可能有多个),但是;不应终止while语句。它应该是
while(…){}
,而不是while(…);{}
至于您关于重新定义的错误,您不能再次定义已经在更大范围内定义的变量。对于本例,第2行,intanswer2=(int)answer1
已经定义了answer2。在while循环中,您只需再次使用变量,而无需定义它。因此,它应该是:
while (...)
{
////generating random number
answer1 = (Math.random() * 9000)+1000;
//converting answer
answer2 = (int)answer1;
answer = answer2 + " ";
}
我不确定这是否是主要问题(你可能有不止一个问题),但是一个问题;不应终止while语句。它应该是
while(…){}
,而不是while(…);{}
至于您关于重新定义的错误,您不能再次定义已经在更大范围内定义的变量。对于本例,第2行,intanswer2=(int)answer1
已经定义了answer2。在while循环中,您只需再次使用变量,而无需定义它。因此,它应该是:
while (...)
{
////generating random number
answer1 = (Math.random() * 9000)+1000;
//converting answer
answer2 = (int)answer1;
answer = answer2 + " ";
}
这个问题有太多的错误,让人难以置信
然而,特别是:你在同一个范围内重新定义变量,这是不允许的。这个问题有太多的错误,让人难以置信
但是,特别是:您正在不允许的相同范围内重新定义变量。您已经在
第2行中定义了变量answer2
,并且在while循环中您正在尝试重新定义变量answer2
,即:
int answer2 = (int)answer1;
你可以这样做:
answer2 = (int)answer1;
您已经在第2行中定义了变量answer2
,并且在while循环中尝试重新定义变量answer2
,即:
int answer2 = (int)answer1;
你可以这样做:
answer2 = (int)answer1;
然后你的循环就结束了
while(conditon);
然后再次在{}内定义应答变量
String answer = answer2 + " "; // duplicate
您应使用if作为条件并终止;从那时起
while(condition){
}
和使用
answer = answer2 + " ";
而不是
String answer = answer2 + " ";
然后你的循环就结束了
while(conditon);
然后再次在{}内定义应答变量
String answer = answer2 + " "; // duplicate
您应使用if作为条件并终止;从那时起
while(condition){
}
和使用
answer = answer2 + " ";
而不是
String answer = answer2 + " ";
你看过堆栈跟踪了吗?它告诉您哪一行有问题。以answer.charAt(0)=answer.charAt(0)
开头的条件如何会为false?您读取堆栈跟踪了吗?它告诉您哪一行有问题。以answer.charAt(0)=answer.charAt(0)
开头的条件怎么会为false?