新对象实例后出现预期的分号错误

时间:2017-06-22 22:27:21

标签: java compiler-errors

为什么这给了我一个预期的符号错误这个错误?它要我放一个“;”在第4行的口袋妖怪和宝宝之间。

public Pokemon reproduceWithPokemon(Pokemon otherPokemon){
int chance = (int)(Math.random());
if (chance <= .15){
    return Pokemon baby = new 
         Rapidash(this.getxPos(),this.getyPos(),this.getbounds());
}
return null;

3 个答案:

答案 0 :(得分:2)

如果机会小于15%,只需返回Pokemon对象

live

答案 1 :(得分:1)

您收到该错误,因为这不是正确的return语句的样子。只需返回

return new Rapidash(this.getxPos(), this.getyPos(), this.getbounds());

Pokemon baby;
return (baby = new Rapidash(this.getxPos(), this.getyPos(), this.getbounds()));

但它只是将值赋给变量baby然后返回它,所以你并没有从中获得太多收益。

此外,if条件将无法按预期工作,因为您将Math.random()的结果转换为int,这将截断小数点后的所有内容。由于这会在[0, 1[区间内生成一个随机数,因此将其强制转换为始终会为您提供0

只需将chance转换为double并放弃演员表,然后您的情况应按预期运作:

double chance = Math.random();

答案 2 :(得分:-1)

    public Pokemon reproduceWithPokemon(Pokemon otherPokemon){
int chance = (int)(Math.random());
if (chance <= .15){
    return new 
         Rapidash(this.getxPos(),this.getyPos(),this.getbounds());
}
return null;

这应该是这样的。