在数组中使用随机对象
Using Random Objects in Arrays
所以我对编程还很陌生,但我掌握了循环和数组等基础知识,现在我正在学习 classes 和对象。
我想让我的宠物 "eat" 并使用数组输出 3 个食物元素。
这是我的主要方法
Food[] f = new Food[3];
for(int i = 0; i < 3; i++){
f[i] = new Food();
System.out.println("Your " + pet.type + " ate some " + food.name);
pet.eat(food);
}
我正在打电话给 "Food Class"
的食物
public class Food {
int nutrition; // scale from 0 - 5 where 5 is super nutritious
String name; // name of food
public Food(){
Random r = new Random();
int num = r.nextInt(6);
if (num == 0){
name = "rocks";
nutrition = 0;
} else if (num == 1){
name = "seeds";
nutrition = 1;
} else if (num == 2){
name = "chips";
nutrition = 2;
} else if (num == 3){
name = "carrots";
nutrition = 3;
} else if (num == 4){
name = "fish";
nutrition = 4;
} else if (num == 5){
name = "steak";
nutrition = 5;
}
}
我的问题是当我尝试 运行 上面的循环时,它输出了 3 种相同的食物,即使我在食物 class 中指定我希望它生成一个随机食物.
示例输出
你的狗吃了一些薯条
这食物一点营养都没有。。。
你的狗吃了一些薯片
这食物一点营养都没有。。。
你的狗吃了一些薯条
这食物一点营养都没有...
提前致谢!
您的新 Food 对象存储在 f[i] 中。
f[i] = new Food();
但您的输出来自 food.name。
System.out.println("Your " + pet.type + " ate some " + food.name);
您需要打印 f[i].name.
所以我对编程还很陌生,但我掌握了循环和数组等基础知识,现在我正在学习 classes 和对象。 我想让我的宠物 "eat" 并使用数组输出 3 个食物元素。
这是我的主要方法
Food[] f = new Food[3];
for(int i = 0; i < 3; i++){
f[i] = new Food();
System.out.println("Your " + pet.type + " ate some " + food.name);
pet.eat(food);
}
我正在打电话给 "Food Class"
的食物public class Food {
int nutrition; // scale from 0 - 5 where 5 is super nutritious
String name; // name of food
public Food(){
Random r = new Random();
int num = r.nextInt(6);
if (num == 0){
name = "rocks";
nutrition = 0;
} else if (num == 1){
name = "seeds";
nutrition = 1;
} else if (num == 2){
name = "chips";
nutrition = 2;
} else if (num == 3){
name = "carrots";
nutrition = 3;
} else if (num == 4){
name = "fish";
nutrition = 4;
} else if (num == 5){
name = "steak";
nutrition = 5;
}
}
我的问题是当我尝试 运行 上面的循环时,它输出了 3 种相同的食物,即使我在食物 class 中指定我希望它生成一个随机食物.
示例输出 你的狗吃了一些薯条 这食物一点营养都没有。。。 你的狗吃了一些薯片 这食物一点营养都没有。。。 你的狗吃了一些薯条 这食物一点营养都没有...
提前致谢!
您的新 Food 对象存储在 f[i] 中。
f[i] = new Food();
但您的输出来自 food.name。
System.out.println("Your " + pet.type + " ate some " + food.name);
您需要打印 f[i].name.