Java-在';如果';语句头?

Java-在';如果';语句头?,java,arrays,if-statement,methods,boolean-operations,Java,Arrays,If Statement,Methods,Boolean Operations,上面的代码是我试图在“if”语句中添加的方法。 java是否允许在“if”语句(块)中包含函数调用 下面的代码段有一个if语句块 public static boolean know(String [] [] t, int r , int c, String ){ boolean flag = false; if ((t[r-1]

上面的代码是我试图在“
if
”语句中添加的方法。 java是否允许在“
if
”语句(块)中包含函数调用

下面的代码段有一个if语句块

 public static boolean know(String [] [] t, int r , int c, String ){            
        boolean flag = false;                                                       
        if ((t[r-1][c-1]).equals(x+"_"));
            flag = true;
        return flag; 
}

可以在if语句中调用方法,但该语句的计算结果必须为布尔值。在本例中,您应该关闭这些括号,并在已知()方法的参数中声明x。此外,如果试图将任何0传递给该方法,则可能会遇到问题,因为-1不是有效的数组索引

您还调用了know()方法,该方法返回true/false,但是equals()方法无论如何都会这样做,因此您可以在调用know()方法的任何地方使用它。将know(t[][]int,int,String)替换为

如果输入是动态的,那么您仍然可以

 if (t[0][1].equals("X_")){
   return 3;
  }

是的,这是合法的。你试过了吗?为什么不自己试一下呢?是的,你可以。你应该尽你所能去尝试;但是您不需要为该逻辑使用条件:
返回t[r-1][c-1].equals(x+“”)。您可能要删除
行,则在
行的末尾添加code>,或者代码总是返回
true
。好的,谢谢。我想我发现了我的错误,我有一个额外的括号或什么,当我重新编译代码时,它工作了。我正在使用“知道”的方法来简化必须重写数百行涉及数组索引的冗长且容易出错的语句。我正在做一个高级的tic-tac-toe程序。别忘了把x也传给这个方法:)
 if (t[0][1].equals("X_")){
   return 3;
  }
   if (t[input-1][input-1].equals(input+"_"))