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

何时在Java中使用后增量和前增量

夏侯鹏
2023-03-14
问题内容

我了解对此主题有很多疑问。但是我仍然有些困惑,不确定何时使用这些操作。我正在为参加考试而做的旧考试。其中一种方法返回可访问的残疾人可用教室的数量。我编写了counter方法,但不确定是应该先递增还是递后递增计数器。我对它如何与方法中的return语句混淆。我仍然不知道该方法将在下面返回什么值。其他问题未在方法中显示html" target="_blank">返回值,因此我对它的工作方式感到困惑。这是代码:

  public int howManyHandi()
{
    int counter= 0;
    for (int i = 0; i < _clsrms.length; i++){
        if (_clsrms[i].handicappedSuitable() && _clsrms[i].isAvailable()){
            ++counter;
        }
    }
    return counter;
}

问题答案:

当您要在表达式中使用变量的增量值时,使用PRE-increment。而POST-increment在增量前使用原始值。

每当您的代码遇到PRE递增时,它都会在内存中递增该变量的值,然后加载该值并继续读取表达式。

POST增量执行相反的操作,它将变量的值加载到内存中,然后递增该值并继续读取表达式。

为了更清楚一点,请考虑一下

int i = counter++;

相当于

int i = counter;
counter = counter + 1;

鉴于

int i = ++counter;

相当于

counter = counter + 1;
int i = counter;

编辑:评论arent工作,所以我将在这里对其进行编辑。

我的意思是,仅在表达式中使用该值时才重要。

sum = 0
counter = 0;
sum = (++counter)+(++counter)+(counter++)

评估为

sum = 0
counter = 0
//For first ++counter
counter = counter + 1
sum = counter

//For second ++counter
counter = counter + 1
sum = sum + counter

//For first counter++
sum = sum + counter
counter = counter + 1


 类似资料:
  • 我知道在StackOverflow上有许多关于这个主题的问题。但我仍然有点困惑,不确定何时使用这些操作。我在为考试做准备时正在经历旧的考试。其中一个方法返回残障、可访问和可用教室的数量。我写了counter方法,但不确定我应该对计数器进行预增量还是后增量。我对它如何与方法中的return语句一起工作感到困惑。我仍然没有得到该方法将在下面返回的值。其他问题没有在方法中显示返回值,因此我对它实际上是如

  • 问题内容: 当我偶然发现名为JSpeed-Javascript优化的项目时,我正在浏览Google Code。 我注意到优化之一是更改为for循环语句。 优化之前 优化后 我知道前后的增量是什么,但是知道如何加快代码速度吗? 问题答案: 这是我阅读并可以回答你的问题:“前递增()加一的值,然后返回;相反,收益则增加了一个给它,这 _在理论上_中创建一个临时变量存储的值的结果在执行增量操作之前”。

  • 问题内容: 当我运行以下示例时,我得到输出0,2,1 我不明白为什么输出是0,2,1而不是0,2,2 问题答案: 意思是现在。调用打印,但返回0,所以和 在此之前,现在想象被调用并替换为0 所以 现在它将是 用简单的话(从这里 @ Piotr) “ i = i ++”大致翻译为 另一个这样的例子: 同样的基本原理

  • 循环中的和有区别吗?这仅仅是语法问题吗?

  • 学习lvalue和rvalue。定义是“address of”是左值,否则是rvalue。 我检查了运算符的优先级,前缀和后缀增量都比“address of”运算符有更高的优先级。 对于下面的两个示例,谁能解释一下为什么第一个“&++value1”是lvalue,而第二个“&value1++”是RValue。 我对这两种情况的错误理解是:pValue1指向value1变量。无论在建立地址相关性之前

  • 问题内容: 我正在做一些有关Java的研究,发现这很令人困惑: 这是永无止境的循环! 有人很好地解释了为什么会发生这种事情吗? 问题答案: 上面的循环与以下内容基本相同:- 3 次你的一部分声明- ,被评估为: - 您需要从此处删除分配,以使其起作用:- (根据评论的OP请求) 的行为:- 就注释中指定的问题而言,以下表达式的结果:- 获得如下:- 让我们标记第二条语句的不同部分:- 现在,首先将