2012-01-10 3 views
1

: m2반환 값은 부울 메서드에서 정확히 무엇입니까? 이 코드에서

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; 
} 
} 

, 무슨 라인은 a[0] == a[1]/2 할 인 return 다음에 오는입니까? 그것은 병아리 성명입니까? return

+2

'병아리 진술'? 그게 뭐야? – Bhushan

답변

2

if 성명서로 생각해보십시오. 다음은 무엇을합니까?

if (a[0] == (a[1]/2)) { 
... 

이 평가의 부울 결과입니다 - true 또는 false. 그것이 사실이라면, 뭔가를하십시오.

return과 함께 사용하면 부울 결과가 호출자에게 반환됩니다.

+0

예, 이제 보았습니다. 그래서 값에 대한 업데이트가 아닌 부울 표현식이 반환됩니다. 맞습니까? 고마워요. – AbdullahR

+1

알겠습니다. '=='가 평등을 테스트하고 있다면, 당신은 불리언 결과를 얻습니다. –

2

이것은 메소드가 반환 할 값을 나타내는 부울 표현식입니다.
int을 반환하는 메소드와 다른 점이 없습니다.

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; 
} 
5
return a[0] == a[1]/2 

true를 반환 : 당신이 당신의 우선 순위 규칙을 모르는 경우


, 당신은 다른 방법으로 코드를 읽을 수 있습니다. a [0]은 a [1]을 2로 나눈 것과 같고, 그렇지 않으면 false입니다.

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; 
} 

반환 truea[0] == a[1]/2 경우; 그렇지 않으면 false을 반환합니다.

+0

좋은 설명, 지금은 .. 그래서 부울 표현에 관한 것입니다. – AbdullahR

1

다음과 같이 오히려이 코딩 것이 프로그래머의 특정 종류가있다 :

if(a[0] == a[1]/2) 
    return true; 
else 
    return false; 

우리는 프로그래머의이 종류에 경멸, 그리고 점심 시간 동안 우리가 어디서나 근처에 앉아하지 않는가.

귀하의 질문에 대답하기 위해 return a[0] == a[1]/2;은 완벽하게 유효한 성명서이며 숙련 된 프로그래머라면 다른 방식이 아닌 이것을 좋아할 것입니다. 표현식 안에있는 '=='는이 표현식이 부울 값으로 평가된다는 것을 알려주고이 부울 값이 함수에 의해 반환됩니다. 그건 절대 좋아.

으로 이해하면 도움이 될 수 있지만 연산자 우선 순위를 알고 있으면 불필요하며 어떤 경우에는 나누기 연산자가 작동하지 않아서 (return (a[0] == a[1])/2;) 대체로 작동하지 않습니다. 부울 값에 적용 가능.

관련 문제