老师看看这样输出问题吗?嘿嘿,盗用了同学的Math.random()方法,不太懂

老师看看这样输出问题吗?嘿嘿,盗用了同学的Math.random()方法,不太懂

Animal[] animal=new Animal[5];
  Animal ani=null;
  int random;
  //保存对象进数组
  for(int i=0;i<animal.length;i++) {
   random=(int)(Math.random()*3);
   switch(random) {
   case 0:ani=new Cat("小猫");
   break;
   case 1:ani=new Dog("小狗");
   break;
   case 2:ani=new Sheep("小羊");
   break;
   }
   if(animal[i]==null) {
    animal[i]=ani;
   }
  }
  //输出对象并调用cry方法
  for(int i=0;i<animal.length;i++) {
   animal[i].cry();
  }


正在回答

登陆购买课程后可参与讨论,去登陆

1回答
Animal[] animal=new Animal[5]; //创建名为animal的Animal类型对象数组
  Animal ani=null; //创建一个类型为Animal的ani对象,赋值为空
  int random; //创建一个整型变量random
  //保存对象进数组
  for(int i=0;i<animal.length;i++) { //for循环,为对象数组animal循环赋值
   random=(int)(Math.random()*3); //为整型变量random赋值,值为0-3(含)的随机整数
   switch(random) { //switch选择流程
   case 0:ani=new Cat("小猫"); //random==0时,为ani赋值为new Cat(),Cat需继承自Animal
   break;
   case 1:ani=new Dog("小狗");//random==1时,为ani赋值为new Dog(),Dog需继承自Animal
   break;
   case 2:ani=new Sheep("小羊");//random==2时,为ani赋值为new Sheep(),Sheep需继承自Animal
   break;
   }
   if(animal[i]==null) { //把在switch中赋值的ani写进animal对象数组的空位中
    animal[i]=ani;
   }
  }
  //输出对象并调用cry方法
  for(int i=0;i<animal.length;i++) {
   animal[i].cry();
  }


  • Math.random()方法返回一个0-无限接近于1的随机小数。 把这个数*3,得到的结果就是0-无限接近于3的随即小数。 (int)强制类型转换为整数,结果就为0-2的随机整数。
    2018-03-12 03:00:10
  • 奔奔android 提问者 回复 underwater #2
    那请问这类的方法在API中都能查到吗,还是有些需要理解变通后使用呢?因为英语基础不好,看API有些吃力,所以有没有其他办法呢?谢谢老师哦!
    2018-03-12 08:40:05
  • underwater 回复 提问者 奔奔android #3
    我也是学生 亲 只是进度比你快一点 Math.random()能在API里面查到,*3这种逻辑上的内容我也不知道 是自己搜的
    2018-03-12 13:09:12
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师