2009-10-30 9 views
-1

'||'이 (가)없는 XML 형식의 언어를 사용하고 있습니까? 운영자. 이 연산자의 효과를 어떻게 얻을 수 있습니까? 언어는 또한 삼항 연산자를 지원하지 않습니다. if-else 접근법 이외에 다른 방법으로 이것을 달성 할 수 있습니까?사용 || 연산자

표현이다 ((엑스 == 2) || (y를 == 2)), 및 || 않고 이것을 달성한다 경우 :, IF-다른 .. 미리 감사

+0

어떤 언어입니까? –

+3

"XML의 언어 정렬"을 명확히하십시오. XPath를 의미합니까? –

+1

'&&'와'!'를 사용하면'a || b!'(! a &&! b)' – mouviciel

답변

8

이 방법에 대해 :

if (x == 2) { 
    flag = true; 
} 
if (y == 2) { 
    flag = true; 
} 
if (flag) { 
    // do something 
} 

을 또는이 :

if ((x == 2) || (y == 2))가 변환 : 그렇다면, 논리를 반전

if ((x == 2) | (y == 2)) { 
    // do something 
} 

|| 대신 단락 회로 OR 연산자 |을 사용합니다. + 연산자는 단락 회로 평가를 할 수 없기 때문에

if((x == 2) + (y == 2)) 
{ 
    do_something(); 
} 

그것은 OR 연산자보다 약간 다른 동작합니다 :에 대해 어떻게

1

분할 을 또는 명시 적으로 : 당신이 <xsl:if> 아니라 명백한 <xsl:else>을 보유하고있는 XSL (T) :

이제
if (x == 2) { 
    ... do stuff 
} else if (y == 2) { 
    ... do the same stuff 
} else { 
    condition not fulfilled 
} 

, 다른 사람없이 ... 난 그 하나의 '언어의 XML 정렬'을 알고있다. 그러나 당신이 거기에 가지고있는 것은 <xsl:choose>이며 <xsl:when>을 사용하는 다중 조건을 지원하고 또 다른 경우를 표현하기 위해 <xsl:otherwise>을 나타냅니다.

그렇다면 어쩌면 케이스/스위치/선택 기능을 지원하는지 'xml 정렬'언어로 검색해보십시오.

+0

그는 theres가'else else'라고 말합니다. –

3
temp = false; 
if (x==2) 
{ 
    doSomething(); 
    temp = true; 
} 
if (y==2) 
{ 
    if (!temp) 
     doSomething(); 
} 

이것은 또한 내가 생각할 수있는 유일한 실행 또는 X의 == 2와 y == 2의 경우에 지정된 명령어 세트를 반복한다

if (x==2) 
{ 
    doSomething(); 
} 
else 
{ 
    if (y==2) 
     doSomething(); 
} 
+1

x == 2이고 y == 2이면 DoSomething을 두 번 사용 하시겠습니까? –

+0

x == 2 및 y == 2를 제외하고 doSomething()이 두 번 호출됩니다. – Niki

+0

True. 내가 고칠 수있게 해줘. –

0

을 일할 수 있습니다. 여기에서의 문제는 언어에서 유래 한 것으로 보인다. 적어도 사용하기 위해서는 기본적인 논리 연산자를 지원해야하기 때문이다.

1
if (!((x != 2) && (y != 2))) { 
    work(); 
} 
0

"XML 종류의 언어"는 &&을 지원합니까? if (!((x != 2) && (y != 2)))

0

방법에 대해 :

boolean doIt = (x == 2); 

if (!doit) { 
    doIt = (y == 2); 
} 

if (doIt) { 

    // do something 
} 
1

.

프로그램의 제어 흐름은 동일합니다.

0

당신은 시도 할 수 다음

경우 ((엑스 == 2) & & (X + Y == 4)) 다른 {

}

{

}