我想在android中生成随机数,但排除一些以零结尾的随机数

我想在android中生成随机数,但排除一些以零结尾的随机数,android,Android,我想在这个(651到999)范围内生成随机数,但不希望660670680等以零结尾或中间(707805),所以在这种情况下请帮助我 在此代码错误中:-i1在while循环中不是局部变量您可以执行以下操作。你所要做的就是,循环直到你找到一个不能被10整除的数字 int min = 651; int max = 999; Random r = new Random(); do {

我想在这个(651到999)范围内生成随机数,但不希望660670680等以零结尾或中间(707805),所以在这种情况下请帮助我
在此代码错误中:-i1在while循环中不是局部变量

您可以执行以下操作。你所要做的就是,循环直到你找到一个不能被10整除的数字

            int min = 651;
            int max = 999;
            Random r = new Random();    
            do  {
                    final   int i1 = r.nextInt(max - min + 1) + min; 
                } 
            while(i1 %10 == 0);
您的代码有什么问题

除了在上下文之外访问局部变量,您所做的是正确的。您必须在while循环的上下文之外声明i1。另外,请记住,一次分配后,不能修改最终的int。在您的情况下,这不会影响,因为它位于while循环的上下文中

int min = 651;
int max = 999;
Random r = new Random();
int randomNum;    
while(true){
    randomNum = rand.nextInt((max - min) + 1) + min;
    if(randomNum%10!=0){
        break;
    }
}
//now you have the required random number

也许您应该确定这是家庭作业,因为这显然是一个基本的编程问题。
int i1; //this should come here. 
do  {
     i1 = r.nextInt(max - min + 1) + min; // no final anymore
} 
while(i1 %10 == 0);