import java.text.SimpleDateFormat; import java.util.Date; import java.util.Random; /* * 双色球 * 类似冒泡排序 * * 思路: * 通过外存循环来进行色彩选择,一共要执行6次:所以可以用计数型循环for实现。 * 外存循环层数和该执行第几个数对应 * 第一次循环,排序第1个数。 次数对应位置 * ..... * * 内层循环中可能遇到重复的数字,需要进行判断。 * 这里使用了for循环,是计数型循环。内层循环次数和外层的第几层有关。 * 层数有影响内层次数。不必要每次都执行一定(最多)次数。 * 由于外层循环中已经知道执行了第几次,也就意味已经遍历了第几个 * 所以,结束条件就是外层循环的次数。 * 第一次,因为外层循环中没有需要比较的数。不需要执行,执行0次 * 第二次,外层循环中有一个需要比较的数,这个数位置就是在待设置数据的前面。最多执行1次 * 第三次,外层循环中有两个需要比较的数,这两个数就是数组前两个数。最多执行2次 * ... * 第n次,外层循环中有n-1个需要比较的数,这n-1个数就是数组前n-1个数。最多执行n-1次 * * * for in 语句:for in语句只能遍历,难以记录下标, * 需要在循环外记录遍历次数。 * */ public class DoubleColor { public static void main(String[] args){ Random random = new Random(); int[] colors = new int[6];//length>32会死循环 for(int i = 0,j;i<colors.length;){ int color = random.nextInt(32)+1; for(j = 0;j<i;j++){//不用= if(color==colors[j]){ break; } } if(j==i){ colors[i++] = color; } //下面不需要continue } //for in // for(int i = 0,j;i<colors.length;){ // //直接复制 // colors[i] = random.nextInt(32)+1; // // for(j = 0;j<i;j++){//不用等 // if(colors[i]==colors[j]){ // break; // } // } // if(j==i){ // i++; // } // //下面不需要continue // } for(int color:colors){ System.out.printf("%d,",color); } //自己设置时间 Date d = new Date();//使用java.util 关系类 // SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); } }
javaSE练习Day02 双色球
最新推荐文章于 2024-09-27 00:45:01 发布