Java-双色球小程序

“毕业两年,是那种仿佛在大学并没有学习过java一般的菜。思来想去,得会一样技术傍身,那就从Java开始吧。
写这个的目的就是记录一些遇到的问题,和思考的过程,也是一种财富ba。(。・∀・)ノ゙”——一个技术小白白

先从一个双色小程序记录。

【题目】写一个JAVA小程序,执行main方法的时候输出(System.out.println)双色球。红球一共6个,每组从1-33中抽取一个,六个互相不重复。然后蓝球从1-16中抽取一个数字,输出整个组成的双色球。

难点:①随机输出;
   ②互相不重复。

①在思考从某个范围内随机输出一个数字时,我想到使用
Math.random() 或者 Random类(使用要点查阅该链接,参考这位博主的博客)

②互相不重复,我使用了ArrayList的contains方法。
new ArrayList<>().contains(Object o)判断该list对象是否包含某个对象o。

具体实现:
1.使用ArrayList和Random类

import java.util.ArrayList;
import java.util.Random;

public class DoubleColorBall {
    public static void main(String []args) {
        DoubleColorBall d=new DoubleColorBall();
        System.out.println("The Double Color Ball Number is:"):
        d.RedBall();
        d.BlueBall();
    }
    Random r=new Random();
    //红球
    public void RedBall(){
        int RedN;
        ArrayList<Integer> redBallList=new ArrayList<Integer>();
        for(int i=0;i<6;i++){
            RedN=1+r.nextInt(33);//random类,生成1-33的随机数
            //判断该list中是否包含该随机数。若true,则再生成一个随机数;若false,则添加进该list
            if(redBallList.contains(RedN)){
                i=i-1;
            }else{
                redBallList.add(RedN);
            }
         }
         System.out.println("Red ball is:"+redBallList);
    }
    //蓝球
    public void BlueBall(){
        int BlueN=1+r.nextInt(16);//random类,生成1-16的随机数
        System.out.println("Blue ball is:"+BlueN);
    }
}

2.使用数组和Math.random()方法。

//红球
public void RedBall(){
    int[] redArr=new int[6];
    int RedN;
    for(int i=0;i<6;i++){
        RedN=(int)(i+Math.random()*33);//Math.random(),生成1-33的随机数
        //和数组里的每一个值作比较,若相等,则再生成一个随机数
	for(int j=0;j<6;j++){
	    if(redArr[j]==RedN){
	        RedN==(int)(i+Math.random()*33);
	        j=-1;
	    }		
	}
	redArr[i]=redN;
	System.out.println("Red ball No."+(i+1)+" is:"+redArr[i]);
    }
}
//蓝球
public void BlueBall(){
    int BlueN=(int)(1+Math.random()*16);
    System.out.println("Blue ball is:"+BlueN);
}

好啦,就到这里啦。希望自己可以进步。

你可能感兴趣的:(java)