Java 语句S立即包含语句U是什么意思?

Java 语句S立即包含语句U是什么意思?,java,Java,发件人: 程序的执行顺序由以下语句控制: 为其效果而执行,并且没有值 某些语句包含其他语句作为其结构的一部分;诸如此类 语句是语句的子语句。我们说,这一声明立即生效 如果没有与S和U不同的语句,则包含语句U S包含T,T包含U。同样,一些语句包含 表达式作为其结构的一部分 如果没有与S和U不同的语句T,使得S包含T且T包含U,那么语句S立即包含语句U是什么意思?将以下复合语句视为S: (a+b)+c 假设U是S中的语句(a+b),那么S立即包含语句U。这是因为S中没有非平凡的语句T使得T包含U

发件人:

程序的执行顺序由以下语句控制: 为其效果而执行,并且没有值

某些语句包含其他语句作为其结构的一部分;诸如此类 语句是语句的子语句。我们说,这一声明立即生效 如果没有与S和U不同的语句,则包含语句U S包含T,T包含U。同样,一些语句包含 表达式作为其结构的一部分


如果没有与S和U不同的语句T,使得S包含T且T包含U,那么语句S立即包含语句U是什么意思?

将以下复合语句视为S:

(a+b)+c
假设U是S中的语句
(a+b)
,那么S立即包含语句U。这是因为S中没有非平凡的语句T使得T包含U

然而,如果我们有

S: (a+(b+c))+d
然后我们可以让T
(a+(b+c))

例如:

if (...) { // A
  doSomething();  // B

  if (...) {  // C
    doSomethingElse(); // D
  }
}
标有字母的行是语句。语句A包含语句B、C和D,并且只有立即包含语句B和C。语句C立即包含语句D

某些语句包含其他语句作为其结构的一部分;诸如此类 语句是语句的子语句

将语句定义为:

声明:

  • 不带牵引子状态的语句
  • 标签状态
  • 假言陈述
  • 如果没有其他声明
  • WhileStatement
  • 预告
因此,唯一可以包含substation(=可以包含其他语句)的语句是标签if、else、while和for

然后,含义变得更清晰-例如,如果S、T和U被定义为:

if(a == b) //S
    if(c == d) //T
        doSomething(); //U

语句S立即包含语句T,该语句T立即包含语句U。但S不立即包含语句U。

(a+b)是一个表达式,而不是astatement@Code-古鲁:是的,你是对的,我想用更抽象的术语来解释它。@tskuzzy,你能解释得更深入一点吗?技术上,我不认为块是语句是子语句(块被定义为不带trailingsubstate的
语句),也就是说,C不是a的子语句。不可否认,哪个…@assylias C应该引用if语句并不重要。为块添加{}可能会使这里的问题有点混淆。p、 我想我理解你的评论,但读起来并不流畅。这是编辑错误吗?我的评论读起来好像我需要一些睡眠;-)主要的一点是,从技术上讲,块不能有子状态,我认为您的示例不适用于这个特定问题的上下文。第二点是:我认为这没那么重要。据我所知,使用了“立即包含”的概念…@assylias你的答案肯定比我的更清楚;-)