Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Java中将If语句更改为函数_Java_Function_If Statement_Methods - Fatal编程技术网

在Java中将If语句更改为函数

在Java中将If语句更改为函数,java,function,if-statement,methods,Java,Function,If Statement,Methods,我是编程新手,正在学习Java语言中的函数 函数有两种,一种描述兔子的生长,另一种描述狐狸的生长。在这两个函数中,都有一个if语句,以避免nbRabbits或nbFoxex达到负数 public static double calculateRabbits(double rabbits, double foxes, double attackRate) { for (int i = 0; i < Duration; ++i){ rabbits =

我是编程新手,正在学习Java语言中的函数

函数有两种,一种描述兔子的生长,另一种描述狐狸的生长。在这两个函数中,都有一个
if
语句,以避免
nbRabbits
nbFoxex
达到负数

public static double calculateRabbits(double rabbits, double foxes, double attackRate) {

        for (int i = 0; i < Duration; ++i){
            rabbits = nbRabbits;
            nbRabbits *= (1.0 + GROWTH_RATE_RABBITS - attackRate * nbFoxes );

            **if (nbRabbits < 0.0){
                nbRabbits = 0.0;
            }**
        }

        return nbRabbits;   
    }

public static double calculateFoxes(double rabbits, double foxes, double attackRate) {

        for (int i = 0; i < Duration; ++i){
            nbFoxes *= (1.0 + ATTACK_RATE_INIT * rabbits * GROWTH_RATE_FOXES - MORTALITY_RATE);

            **if (nbFoxes < 0.0){
            nbFoxes = 0.0;
             }** 

        }

        return nbFoxes;
    }
公共静态双可计算位(双兔子、双狐狸、双攻击率){
对于(int i=0;i

我的问题是:如果
,如何将此
更改为另一个函数?如果

避免复制粘贴肯定是一个好目标,那么我想避免复制和粘贴
。但是有一个比编写一个函数来替换它更好的解决方案——使用其他人已经编写的函数。在这种情况下。例如:


避免复制粘贴绝对是一个好目标。但是有一个比编写一个函数来替换它更好的解决方案——使用其他人已经编写的函数。在这种情况下。例如:


我会尽力帮助你的。首先,我认为不应该对这种变量使用
double
。相反,请使用
int

int rabbit;
int foxes;
要回答您的问题,您可以这样做:

public double nonZero(double v)
{
  double value = 0.0;

  /*If v is less than 0 then return 0*/
  if (v < 0.0) {
   value = 0.0;
  }

  /*If v is greater than cero return v*/
  else
  {
    value = v;
  }
  return value; 
}

避免出现负数。

我会尽力帮助你。首先,我认为不应该对这种变量使用
double
。相反,请使用
int

public static double calculateRabbits(double rabbits, double foxes, double attackRate) {

        for (int i = 0; i < Duration; ++i){
            rabbits = nbRabbits;
            nbRabbits *= (1.0 + GROWTH_RATE_RABBITS - attackRate * nbFoxes );

            **if (nbRabbits < 0.0){
                nbRabbits = 0.0;
            }**
        }

        return nbRabbits;   
    }

public static double calculateFoxes(double rabbits, double foxes, double attackRate) {

        for (int i = 0; i < Duration; ++i){
            nbFoxes *= (1.0 + ATTACK_RATE_INIT * rabbits * GROWTH_RATE_FOXES - MORTALITY_RATE);

            **if (nbFoxes < 0.0){
            nbFoxes = 0.0;
             }** 

        }

        return nbFoxes;
    }
int rabbit;
int foxes;
要回答您的问题,您可以这样做:

public double nonZero(double v)
{
  double value = 0.0;

  /*If v is less than 0 then return 0*/
  if (v < 0.0) {
   value = 0.0;
  }

  /*If v is greater than cero return v*/
  else
  {
    value = v;
  }
  return value; 
}

为了避免出现负数。

在这种情况下,我将采用完全不同的方法并使用帮助函数:

public static double calculateRabbits(double rabbits, double foxes, double attackRate) {

        for (int i = 0; i < Duration; ++i){
            rabbits = nbRabbits;
            nbRabbits *= (1.0 + GROWTH_RATE_RABBITS - attackRate * nbFoxes );

            **if (nbRabbits < 0.0){
                nbRabbits = 0.0;
            }**
        }

        return nbRabbits;   
    }

public static double calculateFoxes(double rabbits, double foxes, double attackRate) {

        for (int i = 0; i < Duration; ++i){
            nbFoxes *= (1.0 + ATTACK_RATE_INIT * rabbits * GROWTH_RATE_FOXES - MORTALITY_RATE);

            **if (nbFoxes < 0.0){
            nbFoxes = 0.0;
             }** 

        }

        return nbFoxes;
    }
private static int calculateAnimals(int ours, int other, double growth_rate, double factor) {
    int result = ours;
    for (int i = 0; i < Duration; ++i) {
        result *= (1.0 + growth_rate + factor * other);
        if (result < 0.0) {
            result = 0.0;
        }
    }
    return result;
}

public static int calculateFoxes(double rabbits, double foxes, double attackRate) {
    return calculateAnimals(foxes, rabbits, -MORTALITY_RATE, ATTACK_RATE_INIT * GROWTH_RATE_FOXES);
}

public static int calculateRabbits(double rabbits, double foxes, double attackRate) {
    return calculateAnimals(rabbits, foxes, GROWTH_RATE_RABBITS, -attackRate);
}
private static int calculateAnimals(int-ours,int-other,双增长率,双因子){
int结果=我们的;
对于(int i=0;i
在这种情况下,我会采取完全不同的方法,使用一个helper函数:

private static int calculateAnimals(int ours, int other, double growth_rate, double factor) {
    int result = ours;
    for (int i = 0; i < Duration; ++i) {
        result *= (1.0 + growth_rate + factor * other);
        if (result < 0.0) {
            result = 0.0;
        }
    }
    return result;
}

public static int calculateFoxes(double rabbits, double foxes, double attackRate) {
    return calculateAnimals(foxes, rabbits, -MORTALITY_RATE, ATTACK_RATE_INIT * GROWTH_RATE_FOXES);
}

public static int calculateRabbits(double rabbits, double foxes, double attackRate) {
    return calculateAnimals(rabbits, foxes, GROWTH_RATE_RABBITS, -attackRate);
}
private static int calculateAnimals(int-ours,int-other,双增长率,双因子){
int结果=我们的;
对于(int i=0;i
你可以这样做;创建单个方法,如果值大于零,则返回该值,否则将其设置为零。用这种方法

public static double calculateRabbits(double rabbits, double foxes, double attackRate) {
            for (int i = 0; i < Duration; ++i){

                rabbits = numberOfRabbits(nbRabbits);
                nbRabbits *= (1.0 + GROWTH_RATE_RABBITS - attackRate * nbFoxes );  
            return nbRabbits;   
        }
    public static double mustNotBeZero(double numberOfRabbits){
             if(numberOfRabbits<0){
                 numberOfRabbits=0.0;
               }
            else
               return numberOfRabbits;
    }
公共静态双可计算位(双兔子、双狐狸、双攻击率){
对于(int i=0;i如果(numberOfRabbits您可以这样做;创建一个方法,如果值大于零,则返回该值,否则将其设置为零。使用该方法

public static double calculateRabbits(double rabbits, double foxes, double attackRate) {
            for (int i = 0; i < Duration; ++i){

                rabbits = numberOfRabbits(nbRabbits);
                nbRabbits *= (1.0 + GROWTH_RATE_RABBITS - attackRate * nbFoxes );  
            return nbRabbits;   
        }
    public static double mustNotBeZero(double numberOfRabbits){
             if(numberOfRabbits<0){
                 numberOfRabbits=0.0;
               }
            else
               return numberOfRabbits;
    }
公共静态双可计算位(双兔子、双狐狸、双攻击率){
对于(int i=0;i如果(NumberOfRabbits你想为两行创建一个新函数吗?使用
while
而不是
if
?我不理解这个问题。顺便说一下,从现实世界的角度来看,类型
double
对动物的数量没有意义。函数在Java中被称为方法实际上我不想为两行创建一个方法ines.我的教授想…哈哈你想为两行创建一个新函数吗?使用
while
而不是
if
?我不理解这个问题。顺便说一句,从现实世界的角度来看,
double
类型对动物的数量没有意义。函数在Java中被称为方法实际上我不想创建方法我的教授想要…哈哈