`
dy545443766
  • 浏览: 7691 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

java中那些你需要注意的地方(一) 自增运算

    博客分类:
  • java
阅读更多
       不知不觉中,已经写了这么久的java代码,以前太懒了,不爱总结,不爱做记录。现在发现,多多总结还是对自己有很多好处的。好啦,不废话了,今天给大家谈谈这个简单的自增运算问题。
        还记得当初刚开始学习编程语言的时候,就接触到了自增运算符,i++,++i,这字眼你应该是再熟不过了吧。i++是先赋值后加1, ++i是先加1后赋值。请看下面例子:
public class test{
    public static void test(){
        int count = 0;
        for(int i = 0; i < 5; i++){
           count = count++; 
        }
        System.out.println(count);
    }
}


       关于这个例子的结果你怎么看?count=5 ?真的是这样吗?也许还是有不少初学者会认为结果为5。但是运行起来,你会发现结果为0,为什么呢?
        这还得从jvm的运行机制说起,上面的第一次循环是根据以下几步所得:
       1. jvm将count的值(初始为0)拷贝到临时变量区
        2. count执行加1,得到count = 1
       3. 返回临时变量区的count值(0)
       4. 将返回的值(0)赋给count,此时count的值仍然为0

       依此,循环5次,所以最终得到的值仍为0。
        这过程就好比如下所示:
public class test{
    public static int test(){
        //第一步,先保存值到变量区
        int tempCount = 0;
        //第二步,执行+1
        count = count + 1;
        //第四部,返回临时变区的变量值
        return tempCount;
    }
}

        现在我们再来看看以下代码
public class test{
    public static void test(){
        int count = 0;
        for(int i = 0; i < 5; i++){
           count = ++count; 
        }
        System.out.println(count);
    }
}

        它的值是什么呢? count=5? 对了! 可通过以上步骤再来分析一次,当执行第一次循环时:
         1. 由于是++count,二话不说,上来先加1,此时count值为1
        2. jvm将count(值为1)拷贝到临时变量区
         3. 返回临时变量区的值(值为1)
         4. 将返回的值赋值给count,因此第一次循环的值为1

         第二次循环,执行此步骤,得到count的值为2,依此类推,循环5次,最终得到的结果为5。
        相信看完这个,你以后应该不会再对这个自加问题犯迷糊了,呵呵,细心,细心,再细心     
分享到:
评论

相关推荐

    Java运算案例(算数运算+赋值运算+逻辑运算+关系运算+自增运算+自减运算+条件运算+位运算)

    在本案例中,我们将深入探讨八大类运算符:算数运算、赋值运算、逻辑运算、关系运算、自增运算、自减运算、条件运算以及位运算。这些运算符在编写Java代码时频繁使用,理解并熟练掌握它们对于编写高效、简洁的程序至...

    Java语言中自增、自减运算符解析.pdf

    自增和自减运算符在表达式中的应用需要遵循Java的运算符优先级规则。运算符优先级决定了在没有括号的情况下运算的顺序。例如,乘法(*)和除法(/)运算符的优先级高于加法(+)和减法(-)运算符,所以表达式“5+3*6”的值...

    Java中使用While语句自增运算遍历数组典型实例

    在Java编程中,遍历数组是一项常见的任务,而`while`语句结合自增运算符是实现这一目标的有效方法之一。本实例主要讲解如何利用`while`循环和自增运算符来遍历一个字符串数组,并输出数组中的所有元素。下面我们将...

    Java语言中自增、自减运算符解析.zip

    本篇文章将深入解析Java中的自增和自减运算符,帮助你更好地理解和运用它们。 自增运算符主要有两种形式:前置自增(++)和后置自增(++)。前置自增会在运算前先将变量的值加1,然后返回新的值;而后置自增则是在运算...

    自增自减工具

    这对于快速测试数字变化、进行简单的算术运算或在不支持自增自减操作的环境中尤其有用。 复制参数功能进一步增强了工具的实用性。用户可以直接复制计算后的结果,将其粘贴到其他地方,如电子表格、文档或者再次输入...

    20191220-Java位运算_java_位运算_

    Java位运算在编程中是一种非常基础且强大的操作,它直接作用于二进制位,能够进行高效的数值处理和数据操作。本文将深入讲解Java中的位运算,并通过雪花算法的应用实例来进一步阐述其重要性和用法。 1. **位运算...

    自增与自减

    1. **自增操作符(++)**:在C/C++、Java等多数编程语言中,自增操作符用于将变量的值增加1。它可以放在变量之前(前缀自增)或者变量之后(后缀自增)。 - **前缀自增**:如`++i`,先将`i`的值加1,然后再进行...

    Java中自增和自减操作符(++/--)的那些事

    总的来说,Java中的自增和自减操作符提供了便捷的语法来修改变量的值,但它们的用法需要谨慎,尤其是在复杂的表达式中。理解它们的前置和后置形式的区别,以及它们在表达式求值中的行为,对于编写清晰、无误的代码至...

    java中的自增(++)和自减(--)运算符.docx

    在Java编程语言中,自增`++`和自减`--`运算符是...总结来说,Java中的自增和自减运算符用于快速改变变量的值,而位运算符则提供了一种在二进制级别操作数据的方法。理解这些概念对于编写高效和精确的Java代码至关重要。

    Java程序设计基础:自增自减运算符.pptx

    自增/自减运算符 目录 课程导入 掌握自增/自减运算符的计算 能够熟练使用自增/自减运算符 自增/自减运算符 基本规则: 作用:在对一个变量做加 1 或减 1 处理时,可以使用 ++ 或 --。 ++ 或 --是单目运算符,放在操作...

    java中的自增(++)和自减(--)运算符.pdf

    Java中的自增(++)和自减(--)运算符是编程中常见的操作,它们用于增加或减少变量的值。这两个运算符分为前缀形式和后缀形式,每种形式有不同的行为和效果。 1. 自增运算符(++): - 前缀形式:`++i`,首先将变量i的...

    java数据类型与运算符间的运算

    取余运算通常用于整数,但在Java中,浮点型数据也可以进行取余运算,但需要注意结果可能不是精确的整数。此外,字符型数据在参与算术运算时,会先转换为对应的整数值。 通过这个实验,我们可以更好地理解Java中不同...

    java中的自增(++)和自减(--)运算符 (2).docx

    在Java编程语言中,自增`++`和自减`--`运算符是两种常见的单目运算符,它们用于增加或减少变量的值。我们首先来看看这两个运算符的基本用法和分类。 1. 自增运算符`++`: - 前缀形式:`++variable`,例如`++i`。...

    用自增运算控制P0口8位LED流水花样_单片机C语言实例(纯C语言源代码).zip

    包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...

    基于C语言实现用自增运算控制P0口8位LED流水花样(含源代码+使用说明).zip

    包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、python、web、C#、EDA、proteus、RTOS等项目的源码。【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。【适用人群】:适用...

Global site tag (gtag.js) - Google Analytics