有下面的if条件
if ((listbox != "lhs") || (listbox != "prevnext"))
即使列表框是“lhs”或“prevnext”字符串,这也是失败的。
甚至在语法之下尝试但是失败了
if ((listbox != "lhs" || listbox != "prevnext"))
不确定上述条件的正确语法。
答案 0 :(得分:6)
if ((listbox != "lhs") || (listbox != "prevnext"))
此陈述将始终为真 - 因为列表框永远不会等同于两个值
抱歉,我可能会因为没有发布答案而让一些人感到困惑... @Light有一个解决方案(第一个片段,第二个片段显然与没有内部括号的问题相同) 有些人只需要那个facepalm时刻来实现自己的答案我用
if ((listbox != "lhs") && (listbox != "prevnext"))
如果listbox =“fred”......
if (("fred" != "lhs") && ("fred" != "prevnext"))
true && true result = true
如果listbox =“lhs”......
if (("lhs" != "lhs") && ("lhs" != "prevnext"))
false && true result = false
如果listbox =“prevnext”......
if (("lhs" != "lhs") && ("lhs" != "prevnext"))
true && false result = false
看起来对我来说
答案 1 :(得分:0)
尝试
if (!(listbox == 'lhs' || listbox == 'prevnext')) {
或
if (listbox != 'lhs' || listbox != 'prevnext') {
答案 2 :(得分:0)
(listbox != "lhs" || listbox != "prevnext")
始终为真 - listbox
无法同时成为lhs
和prevnext
,因此它始终不是至少其中一个值。
(listbox == "lhs" || listbox == "prevnext")
然后:
listbox = 'lhs' // => true
listbox = 'prevnext' // => true
listbox = 'anything_else' // => false
如果listbox
为lhs
或prevnext
,则为真。
(listbox != "lhs" && listbox != "prevnext")
然后:
listbox = 'lhs' // => false
listbox = 'prevnext' // => false
listbox = 'anything_else' // => true
如果listbox
既不是' lhs'也不是' prevnext'则为真。
(listbox == "lhs" && listbox == "prevnext")
为了完整性 - 总是错误 - 列表框不能同时等于两个值。