java随机数与数组的使用。
一:题目
二 代码:
public class Students {
int number; // 学号
int State ; // 年级
int Score ; // 成绩
public Students(int number, int state, int score) {
super();
this.number = number;
State = state;
Score = score;
}
public static void main(String[] args)
{
Students sds[]=new Students[20];
for(int i=0;i<sds.length;i++)
{
sds[i]=new Students(i+1,(int)(Math.random()*3+1),(int)(Math.random()*100));
if((int)(Math.random()*3+1)==3)
{
System.out.println("学号是:"+(i+1)+" ,年级:"+ 3
+",成绩:"+(int)(Math.random()*100));
}
}
// 求number的值
for(int i=0;i<20;i++)
{
//System.out.println(sds[i]); //此时是一个空数组,所以输出的结果就是null
}
// 求随机数的用法,年级要求在1~3之间
for(int i=0;i<20;i++)
{
// 随机数Math.random(),产生的数是在0~1之间。
// System.out.println((int)(Math.random()*3+1));
}
//求成绩
/*
for(int i=0;i<20;i++)
{
System.out.println((int)(Math.random()*100));
}
*/
}
}
三:分析
1.首先是考虑如何创建一个数组,创建数组可以是一个引用型数据和基本型数据类型。而这里是引用型数据类型。涉及到引用型数据类型时要考虑到构造方法。而基本型数据则不一样。
2.就是对随机数的应用。一般会用到Math.random()
for(int i=0;i<20;i++)
{
// 随机数Math.random(),产生的数是在0~1之间。
// System.out.println((int)(Math.random()*3+1));
}
注意: 用到随机数Math.random时,产生的数据在0~1之间,如果先要1~3的数据需要对Math.random()进行更改。
for(int i=0;i<20;i++)
{
System.out.println(sds[i].number);
}
代码这样则会保错的。错误之处如图
则会出现没有指针。
Students sds[]=new Students[20]; 是基于学生类Students 而创建的数组,不是基本的数据类型的数组。所以会报错。