在布尔方法中返回的确切做什么?

Abd*_*ahR 1 java arrays methods if-statement

在这段代码中:

public static void main(String []args){
   int [] a = {10, 20, 30};
   if(m1(a))
     m2(a, 0);
   else
     m2(a, 1);
   for(int i = 0; i < a.length; i++)
     System.out.println(a[i] + " ");
}

public static boolean m1(int [] a){
   return a[0] == a[1] / 2;
}

public static void m2(int [] a, int b){
    a[b] = 1;
}
}
Run Code Online (Sandbox Code Playgroud)

m2什么线后return,这是a[0] == a[1] / 2什么?这是小鸡的声明吗?因为它会让人感到困惑return

chr*_*ode 5

我想你的意思是m1.

无论如何,如果您阅读如下代码会有所帮助:

public static boolean m1(int [] a){
   return (a[0] == (a[1] / 2));
}
Run Code Online (Sandbox Code Playgroud)

记下运算符优先级:在相等之前计算括号.也就是说,返回a [0]和表达式结果(a [1]/2)之间的相等性.


如果您不知道您的优先规则,您可以选择将代码读取为:

public static boolean m1(int [] a){
    int i = a[1] / 2;
    boolean foo = (a[0] == i);
    return foo;
}
Run Code Online (Sandbox Code Playgroud)


Joa*_*son 5

return a[0] == a[1] / 2
Run Code Online (Sandbox Code Playgroud)

如果表达式实际为真,则返回true,即.a [0]等于a [1]除以2,否则为假.