当前位置: 首页 > 面试题库 >

在Java中,为什么我不能编写i ++++或(i ++)++?

鄢雅畅
2023-03-14
问题内容

当我尝试在/ decrement中写一个后缀/前缀,然后在/ decrement中写一个后缀/前缀时,出现以下错误: 操作++ /-的无效参数

但是,根据JLS:

PostIncrementExpression:
        PostfixExpression ++

PostfixExpression:
        Primary
        ExpressionName
        PostIncrementExpression
        PostDecrementExpression

所以写:

PostfixExpression ++ ++

应该有可能…有什么想法吗?


问题答案:

请注意,原始语法缺少任何语义。这只是语法,并不是每个语法上有效的程序通常都是有效的。例如,语法通常没有涵盖使用前必须声明变量的要求(可以,但是很麻烦)。

Postfix-increment产生一个右值-就像您不能postfix-increment的常量文字一样,您也不能postfix-
increment的结果i++

从JLS引用(3 次编,486页。):

后缀增量表达式的结果不是变量,而是值。



 类似资料:
  • 我正在做我的节目。我正在使用Sublime文本和用于编译基本Windows CMD。我有一个文件夹,在这个文件夹中我有一个包,里面有每个文件(folde todolist)。在这个包中,我有一个类(Gui.java(packgae(folder)Gui\u pckg))。此类中的代码如下所示: 导入javax。摆动导入java。awt。; 公共类Gui{ } 而且它编译得很好。 但是,当我试图编译

  • 问题内容: 这是我的进口商品: 我无法编译此代码: 这是错误: 我认为这可能是导入的问题,可以肯定的是,当我专门导入时,它给了我一个额外的错误: 到底是怎么回事?我应该以其他方式导入Codename One中的文件吗?让我知道这是否还不足以找到错误。 PS:我需要实现输入流,以便可以解析csv文件: 问题答案: 看来代号One省略了该类-我怀疑其他类。 从文档来看,我怀疑您想使用该类及其方法。 您

  • 问题内容: 以下Java程序平均需要0.50秒至0.55秒的时间运行: 如果我替换为,则需要0.60到0.65秒的时间来运行。怎么会? 我对该程序的每个版本运行了15次,两次交替运行。结果如下: 最快的运行时间比最慢的运行时间长。如果它们具有相同的效率,则发生这种情况的可能性将小于。 问题答案: 字节码的顺序略有不同。 : vs : 乍看之下,这没有什么区别;如果有的话,第二个版本更理想,因为它减

  • 我碰巧知道,在下面的表达式中,使用将导致无限流,将始终为0。我之所以困惑是因为我认为返回的值没有被使用,即便如此,它也不应该中断之后的增量。

  • 问题内容: 我拼命地试图从字符串中删除空格(后来我希望能够将其转换为一个int),但是我似乎无法正常运行。 你能告诉我,我做错了什么吗?PS:我也尝试过\ W“和\ S” 问题答案: 更换 与 它将起作用,因为字符串是不可变的,因此不会更改您的字符串对象,它将返回一个新的字符串对象。因此,您将变量分配给由返回的字符串 另外,您应该尝试遵循Java命名约定,并使字段和变量以小写字母开头。 而且,您也

  • 问题内容: 直接的答案是因为s接口被指定为不会引发异常。但是为什么呢? 或换句话说:我必须依赖可以引发异常的函数。从理论上讲,这不应该发生。但是,如果发生这种情况,我希望它脱离我正在使用的整个函数(在中)。即我希望它的行为就像发生未处理的异常一样。 似乎这不可能以一种显而易见的自然方式进行(因为如果接口说它不能抛出异常,就不会)。 我该如何解决?用丑陋的try / catch并打印出异常,并希望我