使用||操作者

时间:2009-10-30 12:40:45

标签: c xml

我使用的是一种没有“||”的XML语言运营商。如何实现此运算符的效果?该语言也不支持三元运算符。除了if-else方法之外还有其他方法可以实现吗?

表达式是,如果((x == 2)||(y == 2)),并且应该在没有||,?:,if-else的情况下实现这一点...提前感谢

9 个答案:

答案 0 :(得分:8)

这个怎么样:

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

或者这个:

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

请注意,这使用非短路OR运算符|而不是||

答案 1 :(得分:3)

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

这也可以起作用

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

答案 2 :(得分: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种语言'来搜索是否支持案例/切换/选择功能。

答案 3 :(得分:1)

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

答案 4 :(得分:1)

怎么样:

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

它的行为与OR运算符略有不同,因为+运算符不能进行短路评估。

虽然程序的控制流程是相同的。

答案 5 :(得分:0)

我唯一能想到的是重复为x == 2和y == 2的情况执行或指定的指令集。这里的问题似乎来自语言,因为它至少应该支持基本的逻辑运算符才能使用。

答案 6 :(得分:0)

这种“XML种语言”是否支持&&?如果是这样,反转逻辑:

if ((x == 2) || (y == 2))转换为:if (!((x != 2) && (y != 2)))

答案 7 :(得分:0)

怎么样:

boolean doIt = (x == 2);

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

if (doIt) {

   // do something
}

答案 8 :(得分:0)

您可以尝试以下方法:

if((x == 2)&amp;&amp;(x + y == 4)) {

} 其他 {

}