在java中,如果要随机产生数给某个变量赋值,但产生数的范围有两个,该如何实现

来源:百度知道 编辑:UC知道 时间:2024/09/22 01:08:08
我说的范围有两个,一个是48到57,然后另一个是65到90,赋予变量时能随机的去到这两个范围其中一个里面的值

if ((int) (Math.random() * 36) <= 9) {
num = 57 - (int) (Math.random() * 10);
} else {
num = 90 - (int) (Math.random() * 26);
}

36是2个区间内一共有36个数
小于等于9因为
第一区间占有10/36的可能
第二区间占有26/36的可能
剩下的就没什么了,应该恨简单

是不是类似与范围10-100这种啊,
用Math类的getRandom()方法就可以,范围为10-12


package help;
public class Test{
public int getRandom(){
int i=(int)(Math.random()*12);
return i;
}
public boolean isInScope(int i){
if(i<10){
return false;
}else{
return true;
}
}
public static void main(String[] args) {
Test test=new Test();
int j=test.getRandom();
boolean tag=true;
while(tag){
if(!test.isInScope(j)){
j=test.getRandom();
}
if(!test.isInScope(j)){
tag=true;
}else{
tag=false;
}
}
System.out.println(j);
}
}

因为你没给出你想要的随机数的范围,所以我只好给你举个例子