2009-10-30 21 views
-1

我使用的XML語言不具有'||'運營商。我怎樣才能達到這個操作符的效果?該語言也不支持三元運算符。除了if-else之外,還有其他方法可以實現嗎?使用|| operator

的表達是,如果((x == 2)||(Y == 2)),以及要達到這一點沒有||,?,如果其他..在此先感謝

+0

哪種語言? – 2009-10-30 12:42:27

+3

請說明「XML排序的語言」。你的意思是XPath? – 2009-10-30 12:42:44

+1

如果你有'&&'和'!',你可以替換'a || '!(!a &&!b)' – mouviciel 2009-10-30 12:46:30

回答

8

如何:

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

或者這樣:

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

請注意,這使用非短路OR運算符|而不是||

1

斯普利特的或明確:

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

現在,沒有別的......我知道有一個「XML說詞」與:XSL(T),在其中有一個<xsl:if>但沒有明顯的<xsl:else>。然而,你在那裏做的是更通用的<xsl:choose>,它支持使用<xsl:when><xsl:otherwise>來表示「其他」情況的多個條件。

因此,嘗試使用'xml語言'搜索它是否支持case/switch/choose功能。

+0

他說theres沒有'如果其他'。 – 2009-10-30 12:44:44

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

這也可以工作

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

如果x == 2並且y == 2那麼DoSomething是兩次? – 2009-10-30 12:44:53

+0

除非x == 2和y == 2 doSomething()將被調用兩次 – Niki 2009-10-30 12:45:24

+0

True。讓我解決這個問題。 – 2009-10-30 12:46:15

0

我能想到的唯一的事情就是重複一組執行或對於x == 2和y == 2的情況下,指定的指令。這裏的問題似乎來自語言,因爲它應該至少支持基本的邏輯運算符以便可用。

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

這個「XML排序語言」是否支持&&?如果是這樣,反轉的邏輯:

if ((x == 2) || (y == 2))轉換爲:if (!((x != 2) && (y != 2)))

0

如何:

boolean doIt = (x == 2); 

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

if (doIt) { 

    // do something 
} 
1

如何:

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

它的行爲比OR-運營商略有不同,因爲+運算符不能做短路評價。

該程序的控制流程將是相同的,雖然..

0

你可以嘗試以下方法:

IF((x == 2)& &(X + Y == 4)){

} 其他 {

}