在Java中,如何在for循环中的if语句中调用两个函数?

在Java中,如何在for循环中的if语句中调用两个函数?,java,function,Java,Function,我应该实现我已经创建的两个函数(名为isTargetWithinRange(它的作用:给定一个目标,这表示目标是否在范围内)和isTargetVisited(它检查目标是否已被捕获)) 在这一部分中,我应该获得当前位置“范围”(到目标的最大距离)内未访问目标的索引。为此,我尝试创建一个for循环,其中包含一个if语句,该语句调用我的两个变量 我遇到的问题是,我不知道如何在if语句(即for循环)中调用函数。我试图在if语句中说,如果isTargetWithinRange返回true,或者isTa

我应该实现我已经创建的两个函数(名为isTargetWithinRange(它的作用:给定一个目标,这表示目标是否在范围内)和isTargetVisited(它检查目标是否已被捕获))

在这一部分中,我应该获得当前位置“范围”(到目标的最大距离)内未访问目标的索引。为此,我尝试创建一个for循环,其中包含一个if语句,该语句调用我的两个变量

我遇到的问题是,我不知道如何在if语句(即for循环)中调用函数。我试图在if语句中说,如果isTargetWithinRange返回true,或者isTargetVisited返回false,那么结果是-1(在本例中表示尚未捕获的目标)


我知道这个问题可能令人难以置信地困惑…但我真的需要帮助。我会尽力澄清/定义我能得到的任何帮助…

像这样的东西应该可以完成这项工作

if (isTargetWithinRange(i) || !isTargetVisited(i)) {
    return -1;
}

我知道你可能是Java新手。函数将返回一个值,在您的例子中,它可能是一个布尔值。因此,您可以使用以下方法来实现您的结果:

if (isTargetWithinRange(i) == true || isTargetVisited(i) == false) {
   return -1;
}

由于函数将返回一个值,==将检查返回的值是否等于您想要的值。

您需要根据结果将返回true或false(谓词)的方法与您想要执行的操作分开。例如:

if(doIReturnTrue()) { // if true do something } .
if语句将从函数接收结果,因此不需要

isTargetWithinRange(i) return true
相反,只需将方法返回的结果传递到if语句中

if(isTargetWithinRange(i)){ // do if true etc }
要测试假结果,请使用逻辑not!接线员

if(!isTargetVisited(i)){ // do if true  }

在上面的例子中,当ISTARGET返回false时,应用“逻辑not”将其更改为true

通常认为将布尔值与“true”或“false”进行比较是不好的形式-很容易输入错误并忽略其中一个=符号。。只需使用
if(x)
if(!x)
@FredK,我这样表述答案的原因是为了让用户更好地理解它。如果某人是java新手,那么理解If(x)If(!x):)就不那么容易了
if(!isTargetVisited(i)){ // do if true  }