获取几个不重复的随机数到数组中
import java.util.Random; public class No2 { public static void main(String[] args) { //定义一个随机数 Random r=new Random(); //定义范围 int len=9; //一个随机数先放到数组第一个 int[]arr=new int[len]; arr[0]=r.nextInt(len); //获取数组中第二个 不相等的随机数 for (int i = 1; i < len; ) {//后一个随机数 //如果后一个随机数temp 不相等 isNoEq=true ; arr[i]=temp;外层循环加1 boolean isNoEq=true; int temp=r.nextInt(len); for (int j = 0; j <i ; j++) {//前一个随机数 //如果前一个和后一个随机数相等 说明是假的 需要再次获得temp if(arr[j]==temp){ isNoEq=false; break; } } if(isNoEq==true){ arr[i]=temp; i++; } } for (int i = 0; i <len ; i++) { System.out.print(arr[i]); } } }

理解break在嵌套循环里的作用
import java.util.Random;
public class Test {
public static void main(String[] args) {
Random r=new Random();
int num=r.nextInt(5);
for (int i = 1; i < 5; i++) {
System.out.println("\n");
for (int j = 0; j <i ; j++) {
System.out.print(j);
/*if(j==2){
break;
}*/
}
}
}
}
第一步:

第二步:

第三步:

最终理解在不重复的数组中的break
import java.util.Random;
public class No {
public static void main(String[] args) {
//引入随机数
Random r=new Random();
//设置随机数的范围
int len=10;
//目标数组的范围
int[]arr=new int[len];
//定义一个随机数放奥数组中
arr[0]=r.nextInt(len);
//开始拿后一个数和前一个数对比
for (int i = 1; i < len; ) {//后一个数从1开始,len结束
//立flag 如果不相等 说明找到了 外部循环+1
boolean isNotEqu=true;
//相等的次数
int count=0;
int temp=r.nextInt(len);//临时temp,如果符合,在外层循环里写 放到arr数组中 arr[i]=temp
System.out.println("外层循环里的随机数:"+temp);
for (int j = 0; j < i; j++) {//前一个数从0开始,结束是已经找到的数组的范围
//拿前一个数和后一个数比较 如果相等 说明有重复的 ;
// 比如arr[0]=1,temp=1 temp 生成新的随机数
// 比如arr[0]=1,temp=2 temp 生成新的随机数
//在内循环里 j=1时 第一次循环得到 temp和第一个值 是否相等;
// 在内循环里 j=2时 第一次得到temp和第一个值 是否相等 第二次得到 temp和第二个值是否相等
if(arr[j]==temp){
//如果和任何一个已经存在在数组内的值相等,说明立的flag是真的,需要一个新的temp,
// 跳出内循环,到外循环里继续生成新的temp
isNotEqu=true;
//计数器
count++;
break;
}
if(count==0){
System.out.println("随机数:"+temp+"和数组内任何一个都不相同");
isNotEqu=false;
}
}
if(isNotEqu==false){
arr[i]=temp;
i++;
}
}
for (int i = 0; i <len ; i++) {
System.out.print(arr[i]);
}
}
}
浙公网安备 33010602011771号