【发布时间】:2025-11-22 06:20:02
【问题描述】:
我的程序中有一个变量v,它可以从值集中获取任何值
"a", "b", "c", ..., "z"
我的目标是仅在v 不是"x"、"y" 或"z" 时执行某些语句。
我试过了,
-
对于类 C 语言(相等运算符比较 实际 字符串值;例如 c#、javascript、php)
if (v != "x" || v != "y" || v != "z") { // the statements I want to be executed // if v is neither "x", nor "y", nor "z" } -
对于类似 Pascal 的语言(例如 plsql)
IF (v != 'x' OR v != 'y' OR v != 'z') THEN -- the statements I want to be executed -- if v is neither "x", nor "y", nor "z" END IF;
if 条件中的语句总是被执行。我做错什么了吗?
【问题讨论】:
-
这是为元帖子Canonical, language-agnostic question for
if(var != “x” || var != “y” …)描述的问题类型创建规范问题/答案对的尝试。 -
在一些类 C 语言(尤其是 C)中,字符串相等不能这样工作。
-
+1 @Rhymoid。是的,这是误导。我已经更改了标签,我正在考虑提一些关于字符串相等的简短内容。
-
请注意,在 Java 中,比较
String与==和!=(如v != "x")是不正确的。我们需要改用.equals方法,如!v.equals("x")(或!"x".equals(v),如果v可能是null)。请参阅How do I compare strings in Java? 了解更多信息。
标签: c# javascript php plsql if-statement language-agnostic logical-operators control-flow