我所说的“空if语句”是指这样的东西(注意分号):
if (condition);
我在考虑这个应用程序时遇到了麻烦。使用time循环,您可以这样做:
while (callUntilReturnsFalse());
但对于if语句没有这样的应用。此外,Java编译器在遇到此类语句时不会发出错误或警告。这可能会导致大而无声的问题,尤其是对于冗长而复杂的语句:
if ((functionA() && functionB(getFoo()) ||
checkForComplexCondition(arg1, arg2, getBar(getFoo())));
{
doStuff();
}
我的问题是:为什么Java中允许这样做?更重要的是,我是否可以启用一个选项,以便在发生这种情况时引发警告?
(之前有人问过关于C#的这个问题,它确实会发出警告,但我希望找到一种用Java发出警告的方法。)
有一个我经常使用的结构,“null语句”使其更清晰、更容易理解。这是一个例子:
for (int i=0; i < argc; i++)
{
if (argv[i]=="left")
hpos++;
else if (argv[i]=="right")
hpos--;
else if (argv[i]=="up")
;
else if (arv[i]=="down")
;
else fprintf(stderr, "Unknown option \"%s\\n".", argv[i]);
}
在这种情况下,我仍然想检查某些选项是否存在,同时只执行其中一些选项的代码。在这种情况下,如上所述,使用null语句可以使代码的功能和结构更易于下一个必须来维护它的人阅读和理解。
当然,有一些方法可以重新构造此代码,使其不需要null语句。但我不相信它的意图会像代码片段中那样清楚。
我不认为这与问题的意图真正相关,但我认为应该这样说,因为它与问题的本质相关。
有一个效果:
if(variable);
如果变量不稳定。它的作用是在当前线程和访问变量的任何其他线程之间建立一个内存屏障。
public volatile variable;
....
if(variable);
有关更详细的讨论,请参见此处。
我无法想象在代码中加入这种语句有什么真正的价值,但我觉得有必要指出,在这种非常特殊的情况下,这种语句会产生真正的效果。
为什么Java允许这样做?
参见Java语言规范(14.6.空语句):
空语句不起任何作用。
这是完全允许的,它相当于(并将被翻译为):
if (condition) { }
这意味着,如果条件为真,则什么也不做。
如果您使用的是eclipse,您可以看看这里,您可能会发现一些有用的东西(我不确定分号终止符是否存在这样的选项):
窗→ 首选项→ JAVA→ 编译器→ 错误/警告
正如@nullptr在他的回答中指出的,存在一个IDE警告,您需要在空语句上设置警告。
两者之间有实际区别吗 和 除了第一个更短之外,一个优先级更高,还是更慢? 编辑: 我意识到这可能并不清楚,但通常是。
我正在学习一门在线编码课程,该课程导入了appstore上应用程序的大量数据,并要求我们计算出游戏或社交网络应用程序的平均评分。执行此操作时,我意外地键入了if语句,如上图所示: 这是我不明白的,总共有7197个应用程序,如果我使用上面的if语句,我的games\u social\u评级列表的长度是7197。游戏应用程序总数为3862,社交网络应用程序总数为167。7197是从哪里来的?当我输入上
我是JavaScript新手,如果这是一个愚蠢的问题,我很抱歉! 我正在使用Flask制作一个web应用程序,用于编写学校报告。用户选择的输入之一是孩子的性别,这将为变量指定代词。他们使用单选按钮选择性别。 但是,我的问题是总是返回“if”语句。代码将运行,但它始终包含来自此语句的信息。 任何帮助都将不胜感激!
if 语句,就是类似于「如果○○的话,做●●」,根据条件判断脚本的一部分是否执行的语法。 语法如下: if(expression) 语句或语句块 else 语句或语句块 第一个“语句或语句块”是当 expression 表达式的结果为真时执行的部分,第二个“语句或语句块”则是结果为假时执行的部分。如果不需要 else 以后的部分,可以省略。 例: if(a==b) inform("a和b相等
主要内容:示例第一个决策声明中,我们来看看 'if' 语句。在 Erlang 这个语句的一般形式,如下面的程序所显示 - 在 Erlang 中,条件它是计算结果为真或假的表达式。如果条件为真,则 statement#1 将被执行,否则 statement#2 将被执行。 下面的程序是 Erlang 中的 if 表达式的一个简单的例子 - 示例 以下是上述程序需要说明的一些关键点 - 这里所使用的表达式是变量A和
Rust 的 if 并不是特别复杂,不过你会发现它更像动态类型语言而不是更传统的系统语言。所以让我来说说它,以便你能把握这些细节。 if 语句是分支这个更加宽泛的概念的一个特定形式。它的名字来源于树的树枝:一个选择点,根据选择的不同,将会使用不同的路径。 在 if 语句中,有一个引向两条路径的选择: let x = 5; if x == 5 { println!("x is five!"