在此代码中:
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;
}
}
m2
中的,return
a[0] == a[1] / 2
之后的行是什么?
这是小鸡的声明吗?因为在return
答案 0 :(得分:5)
我认为你的意思是m1。
无论如何,如果你阅读这样的代码会有所帮助:
public static boolean m1(int [] a){
return (a[0] == (a[1] / 2));
}
记下运算符优先级:在相等之前计算括号。也就是说,返回a [0]和表达式结果(a [1] / 2)之间的相等。
如果您不知道您的优先规则,您也可以将代码读作:
public static boolean m1(int [] a){
int i = a[1] / 2;
boolean foo = (a[0] == i);
return foo;
}
答案 1 :(得分:5)
return a[0] == a[1] / 2
如果表达式实际为真,则返回true,即。 a [0]等于a [1]除以2,否则为假。
答案 2 :(得分:2)
这是一个布尔表达式,表明该方法将返回的值
它与返回int
的方法没有什么不同。
答案 3 :(得分:2)
根据if
声明来考虑它 - 以下是做什么的?
if (a[0] == (a[1] / 2)) {
...
这是评估的布尔结果 - true
或false
。如果是真的,那就做点什么吧。
将它与return
一起使用会将该布尔结果返回给调用者。
答案 4 :(得分:1)
有一种程序员宁愿按如下方式编写代码:
if( a[0] == a[1] / 2 )
return true;
else
return false;
我们嘲笑这种程序员,在午休期间,我们不会坐在他们附近的任何地方。
所以,为了回答你的问题,return a[0] == a[1] / 2;
是一个非常有效的陈述,任何有经验的程序员都宁愿这样看,而不是以任何其他方式。表达式中的'=='告诉我们这个表达式正在计算一个布尔值,然后该函数返回这个布尔值。那绝对没问题。
如果它可以帮助您更好地理解它,您可以将其表达为return a[0] == (a[1] / 2);
,但如果您知道您的运算符优先级则不需要,并且在任何情况下,替代方法(return (a[0] == a[1]) / 2;
)都不可能因为除法运算符不适用于布尔值。
答案 5 :(得分:0)
在返回值的方法中,return
语句指示要返回的值。例如,这种方法:
public static int timesTwo(int i)
{
return 2 * i;
}
返回其参数的两倍;所以这个方法:
public static void main(String... args)
{
System.out.println(timesTwo(7)); // prints 14.
}
打印14
。
你的例子:
public static boolean m1(int [] a)
{
return a[0] == a[1] / 2;
}
如果true
,则返回a[0] == a[1] / 2
;否则,它返回false
。