数组:抽采游戏Java代码

创建数组:int[] a=new int[100]

数组长度可以不是常量,new int[n]会创建一个长度为n的数组,创建一个数字数组时,所有元素都初始化为0,,boolean数组的元素会初始化为false。

想要获得数组中的元素个数,可以使用array.length。例如:

for(int i=0;i<a.length;i++)

  System.out.println(a[i]);

 

for each循环

Java有一种很强的循环结构,可以用来依次处理数组中的每个元素(其他类型元素集合亦可)。For each 循环语句的循环变量将会遍历数组中的每一个元素,而且不需要使用下标值,更加简洁且不易出错,这种增强for循环的语句格式为:

for(variable:collection) statement

例如:

For(int element : a)

System.out.println(element);

打印数组a的每一个元素。

提示:有个更简单的方式打印数组中的所有值,即利用Arrays类的toString方法。调用Arrays.toString(a),返回一个包含数组元素的字符串,这些元素被放置在括号内,并用逗号隔开,例如:”[2,3,5,7,11,13]”。要想打印数组,可以调用:

System.out.println(Arrays.toString(a));

 

数组拷贝

在Java中,允许将一个数组变量拷贝给另一个数组变量,这时,两个变量的引用相同,例如:

Int[] a=b;

a[2]=5;//此时,b[3]也等于5

 

如果希望将一个数组的所有值拷贝到一个新的数组,要使用Arrays类中的copyOf方法:

int copiedA=Arrays.copyOf(a,a.length);

第二个参数是新的数组长度,通常用来增加数组大小,因为数组一旦被定义下来,大小不可改变。

A=Arrays.copyOf(a,2*a.length);

如果数组元素为数值型,多于的元素将被赋值为0,如果元素是布尔型,则将赋值为false,想饭,如果长度小于原始数组的长度,值拷贝最前面的数据元素。

 

下面是一个例子:

抽彩游戏:从40以内的整数随机 抽取6个数,并将这6个数按从小到大排序好

import java.util.*;

public class Lotter {

 

public static void main(String[] args) {

Scanner in=new Scanner(System.in);

System.out.print("请输入要抽取的数字个数:");

int k=in.nextInt();

System.out.print("请输入可以抽取的最大数字:");

int n=in.nextInt();

int[] numbers=new int[n];

for(int i=0;i<numbers.length;i++){

numbers[i]=i+1;//定义第一个数组,存放0到n的整数,下标从0开始

}

int[] result=new int[k];//定义第二个数组,用来存放抽取出来的数

for(int i=0;i<result.length;i++){

int r=(int)(Math.random()*n);//取得0到n-1之间的随机数

result[i]=numbers[r];//将result中的随机设置为numbers[r]中存放的数值

numbers[r]=numbers[n-1]; //将数组中最后一个数值改写numbers[r],并将n减1

n--;

}

Arrays.sort(result);

for(int r:result)

System.out.println(r);

}

}

输出结果:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值