为什么输出的全是猫呢

来源:3-16 编程练习

Ranron

2019-10-18 18:59:24

public class Test {

    public static void main(String[] args) {
        //生成父类对象数组,数组长度为5
        Animal[] animal = new Animal[5];
        
		//产生随机数,随机产生三种具体子类的实例
		for(int i=0;i<animal.length;i++){
		  int j=(int)(Math.random())*3;
		  if(j==0){
		      animal[i]=new Cat();
		  }else if(j==1){
		      animal[i]=new Dog();
		  }else if(j==2){
		      animal[i]=new Sheep();
		  }
		}


       //循环输出,循环体中每个对象分别调用cry()方法。
       for(int i =0;i<animal.length;i++){
        animal[i].cry();
       }



	}

}


写回答

1回答

好帮手慕酷酷

2019-10-18

同学你好,代码完成的不错,全都输出猫的原因是获取随机数的方式不正确哦~

Math.random()返回的是0-1之间的小数,所以要获取0~3的整数则需要将Math.random()*3,然后将整个表达式转换为int。

具体如下:

(int)(Math.random()*3)

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

0

0 学习 · 11489 问题

查看课程