int x=0; while(true){ x=ran.nextInt(10000); if(x>1000&&x<9999){ break; } } 原理:利用循环,判定x的值,如果符号你的条件,则终止循环即可
刚好最近写的 public static String randomNumStrValueBetwn(int min,int max){ Random r = new Random(System.nanoTime()); StringBuffer st = new StringBuffer(); int k=0,cha = max - min; k = (Math.abs(r.nextInt())%cha)+min; while(k<min){ k +=cha; } st.append(k); return st.toString(); } while部分可以忽略
用这个吧 public static int randomNumValueBetwn(int min,int max){ Random r = new Random(System.nanoTime()); StringBuffer st = new StringBuffer(); int k=0,cha = max - min; return (Math.abs(r.nextInt())%cha)+min; }
这个是吧没用的代码都去掉的 public static int randomNumStrValueBetwn(int min,int max){ Random r = new Random(System.nanoTime()); int cha = max - min; return (Math.abs(r.nextInt())%cha)+min; }
int[] arr = new int[10]; for(int i = 0, ; i < arr.length; i++) { arr[i] = ran.nextInt(9000) + 1000;// ran.nextInt(X)生成的数属于区间[0,X); }
Random r = new Random();
dou[i] = r.nextDouble()*9999;
噢! 为什么要定义double数组了?
random()*8999+1000
for(int i = 0, k = 9999 - 1000 + 1; i < arr.length; i++) {
arr[i] = ran.nextInt(k) + 1000;
}
那么你的就应该这么写 int[] arr=new int[10];
for(int i=0;i<10;i++) {
arr[i] = (int)(Math.random()*8999)+ 1000;
}
while(true){
x=ran.nextInt(10000);
if(x>1000&&x<9999){
break;
}
}
原理:利用循环,判定x的值,如果符号你的条件,则终止循环即可
Random r = new Random(System.nanoTime());
StringBuffer st = new StringBuffer();
int k=0,cha = max - min;
k = (Math.abs(r.nextInt())%cha)+min;
while(k<min){
k +=cha;
}
st.append(k);
return st.toString();
}
while部分可以忽略
public static int randomNumValueBetwn(int min,int max){
Random r = new Random(System.nanoTime());
StringBuffer st = new StringBuffer();
int k=0,cha = max - min;
return (Math.abs(r.nextInt())%cha)+min;
}
public static int randomNumStrValueBetwn(int min,int max){
Random r = new Random(System.nanoTime());
int cha = max - min;
return (Math.abs(r.nextInt())%cha)+min;
}
int[] arr = new int[10];
for(int i = 0, ; i < arr.length; i++) {
arr[i] = ran.nextInt(9000) + 1000;// ran.nextInt(X)生成的数属于区间[0,X);
}