2012-08-28 4 views
-7
public boolean isRight() { 
    if(xposition == ((oposition-1) && (oposition != (12 && 8 && 4))) { 
     return true; 
    } else { 
     return false; 
    } 
} 

"xposition"과 "oposition"은 프로그램 실행 중에 값이 할당됩니다.&& 연산자를 사용하여 오류가 발생했습니다.

오류가 나는 "oposition"의 값이 내가 여기에 잘못이 무엇인지 모르는 12, 8, 4

동일하지 있는지 확인해야합니다 (12 && 8 && 4)입니다. 도와주세요

+6

자바 또는 C++입니까? – Kos

+3

예상되는 결과는 무엇입니까? –

+0

어떤 오류가 발생합니까? – Tudor

답변

2

아마도 바로 논리는 다음과 같습니다

if(xposition == ((oposition-1) && (oposition != 12 && oposition != 8 && oposition != 4))) 

당신이 숫자가 많은 경우 : 나는 당신의 오류 메시지가 모르는 동안

int[] numbers = { 
    12, 8, 4, 13, 2, 7 
}; 
boolean validation = true; 
for (int i : numbers) { 
    if (oposition == i) { 
     validation = false; 
     break; 
    } 
} 
+0

고맙습니다. 그것은 길어지면 중요합니까? 나는 주변에 12 개의 숫자가 있어야한다. 나는 그것들을 외도로 써야 하나? = 12 개의 다른 시간들? – user1506106

+0

이 경우 더 나은 방법은 배열의 루프를 숫자 목록과 함께 사용하는 것입니다. –

6

I don't know what is wrong here.

논리입니다. (12 && 8 && 4)은 (으)로 무엇을 기대합니까? (힌트 : true)

oposition != (12 && 8 && 4)opposition이 그 값과 다른 것을 의미합니까?

+1

물론 '사실'! – verdesmarald

+1

@veredesmarald +1 internets을 얻습니다. –

+1

C++에서는 변함 없지만 Java는 'true && 4'를 허용합니까? 나는 – Kos

1

, 아마 문제가 당신이 비교하는 것입니다 xposition (숫자로 보임)의 결과는 괄호 안에 operator&&입니다.

나중에 의 결과와 oposition을 비교하면 언어가 허용하는 경우에도 유용하지 않을 수 있습니다.

괄호에주의하십시오. 많은 조건이있을 때

if (xposition == opposition-1 
    && opposition != 12 
    && opposition != 8 
    && opposition != 4) 
{ 
    // ... 
} 

들여 쓰기 도움 :

아마 당신은 같은 것을 의미했다.

+0

고맙습니다. – user1506106

0

여기서 문제는 부울 문과 (잠재적 인) int 값을 비교하는 것입니다. 내가 생각하는 당신이 필요로하는 것은 : 12 & & 4가 이해되지 않는다

if((xposition == oposition-1) && 
     (oposition != 12 && oposition != 8 && oposition != 4))) 

문. 이 있으니 각 변수와 변수를 비교하십시오.

관련 문제