`
wnzz95391511
  • 浏览: 124708 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

后缀增量操作符++的问题:j=j++

阅读更多
看《JAVA解惑》的谜题25:
public class Increment {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int j = 0;

		for (int i = 0; i <= 100; i++) {
			j = j++;
		}

		System.out.println(j);

	}
}

程序打印的结果是0,解释为:j=j++;这一句操作等于如下的操作
int temp = j;
j= j+1;
j= temp;

所以无论程序执行了多少遍,j还是等于0。

而我将这相同的例子转化成C、C++语言去执行,则得到的结果完全不一样。
在C、C++中会得到我们所想象的值:j=100。

不要在单个的表达式中对相同的变量赋值超过一次

PS:前两天写代码,我还真出现了这个问题,写成了j=j++

分享到:
评论

相关推荐

    net学习笔记及其他代码应用

    1. 简述 private、 protected、 public、 internal 修饰符的访问权限。 答 . private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,...

    C#语言参考,微软的基础教程

    7.5.9 递增和递减后缀操作符 79 7.5.10 new操作符 79 7.5.11 typeof操作符 79 7.5.12 sizeof操作符 79 7.5.13 checked和unchecked操作符 79 7.6 一元表达式 79 7.6.1 一元正值运算符 79 7.6.2 一元负值运算符 79 ...

    C#语言参考C#语言参考

    7.5.9 递增和递减后缀操作符 111 7.5.10 new操作符 112 7.5.11 typeof操作符 116 7.5.12 sizeof操作符 116 7.5.13 checked和unchecked操作符 117 7.6 一元表达式 119 7.6.1 一元正值运算符 119 7.6.2 一元负值运算符...

    cmd操作命令和linux命令大全收集

    66. cmd.exe--------CMD命令提示符 67. regsvr32 /u zipfldr.dll------取消ZIP支持 68. ntbackup-------系统备份和还原 69. narrator-------屏幕“讲述人” 70. ntmsmgr.msc----移动存储管理器 71. ntmsoprq....

    微软 C#语言参考 CHM格式

    7.5.9 递增和递减后缀操作符... 111 7.5.10 new操作符... 112 7.5.11 typeof操作符.. 116 7.5.12 sizeof操作符... 116 7.5.13 checked和unchecked操作符.. 117 7.6 一元表达式... 119 7.6.1 一元正值运算符... 119 ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    认真听课、多思考问题、多动手操作、有问题一定要问、多参与讨论、多帮组同学 五、 体系结构 oracle的体系很庞大,要学习它,首先要了解oracle的框架。oracle的框架主要由物理结构、逻辑结构、内存分配、后台进程...

    C#语言规范(4.0版本)

    7.6.9 后缀增量和后缀减量运算符 166 7.6.10 new 运算符 167 7.6.10.1 对象创建表达式 168 7.6.10.2 对象初始值设定项 169 7.6.10.3 集合初始值设定项 171 7.6.10.4 数组创建表达式 172 7.6.10.5 委托创建表达式 174...

    微软C#语言规范,C#语言教程中文版

    7.6.9 后缀增量和后缀减量运算符 166 7.6.10 new 运算符 167 7.6.10.1 对象创建表达式 168 7.6.10.2 对象初始值设定项 169 7.6.10.3 集合初始值设定项 171 7.6.10.4 数组创建表达式 172 7.6.10.5 委托创建表达式 174...

    C#语言规范4.0

    7.6.9 后缀增量和后缀减量运算符 166 7.6.10 new 运算符 167 7.6.10.1 对象创建表达式 168 7.6.10.2 对象初始值设定项 169 7.6.10.3 集合初始值设定项 171 7.6.10.4 数组创建表达式 172 7.6.10.5 委托创建表达式 174...

    C#语言规范(2.0,3.0,4.0合集)

    7.6.9 后缀增量和后缀减量运算符 166 7.6.10 new 运算符 167 7.6.10.1 对象创建表达式 168 7.6.10.2 对象初始值设定项 169 7.6.10.3 集合初始值设定项 171 7.6.10.4 数组创建表达式 172 7.6.10.5 委托创建表达式 174...

    C#_语言规范_4.0_中文版

    7.6.9 后缀增量和后缀减量运算符 166 7.6.10 new 运算符 167 7.6.10.1 对象创建表达式 168 7.6.10.2 对象初始值设定项 169 7.6.10.3 集合初始值设定项 171 7.6.10.4 数组创建表达式 172 7.6.10.5 委托创建表达式 174...

    C#教程(语言规范)

    7.6.9 后缀增量和后缀减量运算符.. 148 7.6.10 new 运算符 ... 149 7.6.10.1 对象创建表达式 ... 149 7.6.10.2 对象初始值设定项 . 150 7.6.10.3 集合初始值设定项 . 152 7.6.10.4 数组创建表达式 ... 153 目录...

Global site tag (gtag.js) - Google Analytics