我使用的是一种没有“||”的XML语言运营商。如何实现此运算符的效果?该语言也不支持三元运算符。除了if-else方法之外还有其他方法可以实现吗?
表达式是,如果((x == 2)||(y == 2)),并且应该在没有||,?:,if-else的情况下实现这一点...提前感谢
答案 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)) {
} 其他 {
}