日期:2014-05-20  浏览次数:20779 次

一道关于循环的题(随机生成10个不重复的数字)
public class Test {
public static void main(String[] args) {
Random random=new Random();
int[] numbers=new int[10];//存放十个数字的数组
int count=0;
while(true){
int number=random.nextInt(100);//从100里面随机生成
for(int i=0;i<count;i++){ //跟以前产生数字做比较
if(number==numbers[i]){//如果重复了则不保存,继续产生新的数字
continue;
}
}
numbers[count++]=number;
if(count==10){//数组装满则退出循环
break;
}
}
System.out.println(Arrays.toString(numbers));
}
}
这是产生的一组结果,有重复数字

------解决方案--------------------
2楼正解,continue只作用于里层循环,你可以用一个标记达到你的目的
package csdn;

import java.util.Arrays;
import java.util.Random;

public class Test {
public static void main(String[] args) {
Random random=new Random();
int[] numbers=new int[10];//存放十个数字的数组
int count=0;
while(true){
boolean jumpOut = false; // 判断是否跳过本次循环
int number=random.nextInt(100);//从100里面随机生成
for(int i=0;i<count;i++){ //跟以前产生数字做比较
if(number==numbers[i]){//如果重复了则不保存,继续产生新的数字
jumpOut = true; // 如果有重复数据则跳过
break;
}
}
// 此处决定是否跳过本次循环
if(jumpOut){
continue;
}
numbers[count++]=number;
if(count==10){//数组装满则退出循环
break;
}
}
System.out.println(Arrays.toString(numbers));
}
}