当前位置: 首页 > 知识库问答 >
问题:

为什么Java有一个空语句?[副本]

阎建德
2023-03-14

只是一个普通的Java问题。为什么null变量存在?我正在给CS学生做一些介绍,其中一个最常见的错误是分号,他们不应该在分号上。例如

if(isTired());{
    sleep(10);
}

圆括号前面的分号放错了位置,使if语句无法正常工作,我想知道为什么空行在Java程序中会这样做。在这个例子中,null似乎是一个不利因素,并且想知道什么时候有人会在编码时使用它。

共有1个答案

康元凯
2023-03-14

null语句很有用,因为Java中有些地方不需要做任何事情。它们并不频繁,但它们是存在的。通常,它们是必须作为构造的一部分放入的“强制”语句。例如,如果您希望编写一个仅在“break”终止的For循环,那么您希望For的“conditional”部分中没有任何内容:

for (int i=0;;i++) {
  int j = complexCalculation(i);
  if (j<0 && complexCondition(j)) {
    break;
   }
}

如果不允许null语句,则该语句将无法编译。如果在那里允许,但在其他地方不允许,这将是不一致的(并使编译器编写者的生活更加困难)。

事实是,一旦您相当熟练地使用了该语言,由于意外添加null语句而导致的错误就很少了。

 类似资料:
  • 问题内容: 我惊讶地发现Go带有“ goto”语句。我一直被教导说,“ goto”语句已经成为过去,并且因为它阻塞了程序的实际流程,所以它变得邪恶,而函数或方法始终是控制流程的更好方法。 我肯定错过了什么。Google为什么要包含它? 问题答案: 当我们实际检查Go标准库的源代码时,我们可以看到s在哪些地方得到了很好的应用。 例如,在文件中,使用以下语句: 在从导入只是控制流使用的另一(布尔值)的

  • 为什么java开关语句不能处理null,因为它有一个“默认”子句? 例如,如果你有类似的东西 “default”不应该处理任何其他值,比如null吗?

  • 问题内容: 我正在寻找Eclipse代码样式,以修改格式,并发现了以下问题: foo()(“ ;;”)中第一行的含义是什么? 问题答案: 空无一人。它只是表明,在可能存在某些东西之前。但是正如名称 empty语句 已经说过的:它是空的,因此没有什么可计算的。

  • 我是一个学习如何在android上编码的模拟人,所以如果这个问题听起来很愚蠢,请容忍我。 我理解同步的要点。如果我有两个线程都可以访问和修改的数据,这可能会导致两个线程中数据变量的值不一致。 使方法同步并锁定它们直到一个线程执行完它(执行任何条件检查)是有意义的,但是为什么它与单个语句有关系呢?这对于多条语句来说很重要,因为在两条或更多条语句之间,线程一有可能会脱离可运行状态,但是我不明白一条语句

  • 问题内容: 如果我将这段代码的else if部分更改为else语句,则它可以毫无问题地运行,因此可以了解如何使其运行。我有些困惑的是,为什么当它处于当前形式时会收到一个丢失的return语句错误。我的回报取决于负数布尔变量的值。我涵盖了真实和错误的状态,难道不足以涵盖所有内容吗? 还是我总是必须在else内包含return语句,还是在我的函数底部添加一个无意义的return true,以便编译器接

  • 问题内容: 谁能看到为什么此开关不起作用? 在此语句中,始终返回默认值,但是在对switch表达式进行硬编码时,switch块会按预期工作。查看ReadString()函数代码,它返回一个字符串,因此我看不到任何原因导致我的示例不起作用。 难道我做错了什么?! 问题答案: 您的文本包含两个字节:是2和是1。 您第二个符号是不可见的,您可以尝试使用将其删除。