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

Java中a++和++a的分析

    博客分类:
  • Java
 
阅读更多
本人从编译后的代码来看a++和++a的区别:

先看代码1:
int a=1;
a++;
System.out.println(a);
++a;
System.out.println(a);


编译后的代码1:
int a = 1;
a++;
System.out.println(a);
a++;
System.out.println(a);


输出:2 3
可见当单独使用时,a++和++a没有区别,都被编译成a++了。

再看代码2:
int a=1;
int b=a++;
System.out.println(a);
System.out.println(b);
int c=++a;
System.out.println(a);
System.out.println(c);
int d=(++a)+(++a)+(++a);
System.out.println(a);
System.out.println(d);


编译后的代码2:
int a = 1;
int b = a++;
System.out.println(a);
System.out.println(b);
a++;
int c = a;
System.out.println(a);
System.out.println(c);
a++;
a++;
int d = a++ + a + a;
System.out.println(a);
System.out.println(d);


输出:2 1 3 3 6 15
可以看出所谓的a++的“先用后加,”++a的“先加后用”的实现了。
分享到:
评论

相关推荐

    详解a++和++a的区别

    在编程语言中,如C、C++或Java等,`a++` 和 `++a` 是两种常见的增量操作符,它们都可以用来增加变量a的值。然而,它们的行为方式略有不同,这经常让初学者感到困惑。下面我们将深入探讨这两个操作符的差异。 首先,...

    趣谈C语言和JAVA中的++和--

    通过对`++`和`--`运算符的详细分析,我们可以看出,在C语言和Java中,虽然这些运算符的基本作用相似,但在具体实现细节上存在差异。理解这些差异有助于更好地掌握这两种语言的特点,并能够更加高效地编写代码。此外...

    为什么Python中没有"a++"这种写法

    因此,它并没有像 C、C++ 或 Java 这样的自增运算符(如 "a++" 和 "a--")。下面我们将深入探讨这个问题的原因以及 Python 中实现类似功能的方法。 首先,我们来看一下为什么 Python 不包含自增运算符。在 C 语言中...

    Java基础知识总结

    a++和++a是指Java语言中的两个特殊的运算符,用于将变量的值自增或自减。a++表示将变量的值自增1,而++a表示将变量的值自增1并返回新值。 位运算符 位运算符是指Java语言中的符号,用于执行位运算操作,如AND、OR...

    第六届ITAT信息技术大赛题目及答案 (1).doc

    在Java中,表达式(a++) + (++b)的值可以通过分析操作符的优先级和结合性来确定。在本题中,表达式的值是8。 四、Applet编程 7. Applet生命周期方法分析 在Java中,Applet的生命周期方法包括init、start、stop和...

    算法设计与分析+常用方法

    ### 算法设计与分析:Java中的常用方法 #### 一、算法设计的重要性与基本概念 算法设计是计算机科学的核心部分,它涉及到如何高效、准确地解决特定问题的方法论。一个良好的算法不仅可以提高程序的运行效率,还能...

    嵌入式linux工程师面试题目C语言基础部分.pdf

    a+++++b 所表示的是将 a 和 b 相加,然后将结果再次加到 a 中。 18. 如何定义 Bool 变量的 TRUE 和 FALSE 的值 可以使用 `#define` 或 `enum` 来定义 Bool 变量的 TRUE 和 FALSE 的值。 19. C 语言的 const 的...

    JAVA,简单介绍

    对于表达式 `(a++) + (++b) + a * b`,其中 `a` 和 `b` 已经初始化为 `2` 和 `6`: 1. `(a++)` 表示先使用 `a` 的值(2),之后 `a` 自增 1 成为 3。 2. `(++b)` 表示先将 `b` 自增 1 成为 7,然后使用该值。 3. ...

    用JAVA编程,百钱买百鸡

    a++) { // 公鸡数量最多为33只 for (int b = 0; b ; b++) { // 母鸡数量最多为20只 for (int c = 0; c ; c++) { // 小鸡数量最多为100只 if (3 * a + 5 * b + c / 3 == 100 && a + b + c == 100) { System.out....

    java书本答案

    **知识点:** 在这个表达式中,`a++` 和 `++b` 分别表示后缀递增和前缀递增运算符。`a++` 先返回当前值再递增,而 `++b` 先递增再返回新值。因此,表达式的计算顺序是先计算 `a++` 得到 5,然后计算 `++b` 得到 4,...

    Java课件课堂笔记

    6. **运算符优先级**:Java中的自增(++)和自减(--)运算符有两种形式,前缀(如++a或--a)和后缀(如a++或a--),它们分别代表先操作后赋值和先赋值后操作。此外,需要注意运算符的优先级,例如取模运算(%)。 ...

    Java基础练习题

    `a++`表示先使用变量`a`的当前值,然后变量自增1;`++a`表示先将变量`a`的值加1,然后使用新的值。因此,这段代码的输出为234。 3. **八进制数字** - 正确答案:C. 10 - **知识点**:在Java中,以0开头的数字被...

    JAVA Integer类型自加实例详解

    JAVA Integer类型自加实例详解是 Java 语言中一个非常重要的知识点,对于 Java 开发者来说,无论是初学者还是高级开发者 都需要了解和掌握这方面的知识。本文将深入探讨 Java Integer 类型的自加实例详解,通过示例...

    《Java语言程序设计(一)》课后习题答案(课程编号04747)

    - `b`的值为4(因为a++先取a的值再自增); - `c`的值为3(因为--a先自减再取值)。 #### 2.6 完全数程序设计 完全数是指一个正整数等于其除自身外的所有因数之和。例如,6是一个完全数,因为它等于1 + 2 + 3。 `...

    大连理工大学软件学院第一次java上机作业

    a++) { loop2: switch (a) { case 0: System.out.print("0"+""); case 1: System.out.print("1"+""); break loop2; default: System.out.print("default"+""); continue loop1; case 3: System.out.print...

    GameLoft面试题目及答案

    在这个表达式中,`++b` 先自增,变为5,然后 `a++` 后自增,先计算 `a%b` 得到2,再将a加1。接着乘以2得到6。 b) `int expr = 20 / 8 * 8;` 答案:16 整数除法向下取整,20/8等于2,然后乘以8得到16。 c) `int ...

    java期末试卷

    - `a++` 是后置递增操作,即先输出 a 的当前值(2),然后 a 的值增加 1 成为 3。 - 接下来的 `System.out.print(a);` 输出此时 a 的值,即 3。 - 最后的 `++a` 是前置递增操作,即 a 的值先增加 1 成为 4,然后输出...

Global site tag (gtag.js) - Google Analytics