在Java中将If语句更改为函数
我是编程新手,正在学习Java语言中的函数 函数有两种,一种描述兔子的生长,另一种描述狐狸的生长。在这两个函数中,都有一个在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 =
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中被称为方法实际上我不想创建方法我的教授想要…哈哈