【java】i++与++i、i--运算

 1 package test;
 2
 3 //i++与--i运算
 4 public class test {
 5
 6     public static void main(String[] args) {
 7         int b=0;
 8         int i=1;
 9         b=i++ + ++i + --i;
10         System.out.println("i="+i); //输出i=2
11         System.out.println("b="+b); //输出b=6
12     }
13 }

先要记住这句话:++i ,先自加1,然后再赋值给 b,当 i++ 时先把 i 的值赋给 b 在自加1。--原理一样。从  左 向 右  算(网上很多说法,多测试你就明白了)!

i在自加的时候i的值会马上更新,所有上面的三个 i 数值不一定相同!

运算:                        b=i++  +  ++i   +   --i;

  把它分成三部分看: 一      二        三

         b = 1   +  3   +  2

(一)i++   i是先赋值给b 然后自加,初始值为1所以先把1赋给b          (二)++i   i 在第一部分赋值给b后 i自加1所以此时i等于2,又因为++i,所以先自加1再赋值给b,所以第二部分等于3

(三) --i  i在第二部分变成了3,又因为减号在前所以先自减在赋值给b,此时第三部分等于3   i 减 1等于2(i的值不需要看前后的++、--)

然后把它们相加   b=6    i=2

   若有不同看法请留言指点!

时间: 2024-10-12 01:40:24

【java】i++与++i、i--运算的相关文章

Java基本数据类型与位运算

Java基本数据类型与位运算 >>赋值运算符 赋值使用操作符“=”.它的意思是“取右边的值(即右值),把它复制给左边(即左值)”.右值可以是任何 常数.变量或者表达式 (只要它能 生成 一个值就行).但左值必须是一个明确的,已命名的变量.也就是说,必须有一个物理空间可以存储等号右边的值.分类 基本数据类型 与 类数据类型 的不同1. 对基本数据类型的赋值是很简单的.基本数据存储了实际的数值,而并非指向一个对象的引用,所以在为其赋值的时候,是直接将一个地方的内容复制到了另一个地方.2. 但是在为

java加密解密算法位运算

一.实例说明 本实例通过位运算的异或运算符 “ ^ ” 把字符串与一个指定的值进行异或运算,从而改变每个字符串中字符的值,这样就可以得到一个加密后的字符串.当把加密后的字符串作为程序输入内容,异或运算会把加密后的字符串还原为原有字符串的值.效果图如下: 二.实现过程 1 package com.itxxz; 2 3 import java.util.Scanner; 4 5 /** 6 * java加密解密算法 7 * 8 * @author 螃蟹 9 * 网站:IT学习者 10 * 网址:ht

JAVA实现简单四则混合运算

JAVA实现简单四则混合运算,说明:该计算器支持实则混合运算,如 2*(3+1 )/ 4-3 *9+ 8/ 3*4- 5,则输出:-19.333332 需要说明的事括号必须是英文的.源码如下仅供学习: 运行后直接在Console里面敲然后回车即可 [1].[代码] [Java]代码 跳至 [1] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

关于java中Double类型的运算精度问题

标题     在Java中实现浮点数的精确计算    AYellow(原作) 修改    关键字     Java 浮点数 精确计算   问题的提出:如果我们编译运行下面这个程序会看到什么?public class Test{    public static void main(String args[]){        System.out.println(0.05+0.01);        System.out.println(1.0-0.42);        System.out.

初学JAVA——代码练习(数学运算)

package zhiZuo4; import java.util.Random; public class Math { public static void main(String[] args) { //数学运算 四舍五入 System.out.println(java.lang.Math.round(16.487)); //取上限值 System.out.println(java.lang.Math.ceil(16.487)); //取下限值 System.out.println(jav

Java中的Bigdecimal类型运算

双精度浮点型变量double可以处理16位有效数.在实际应用中,需要对更大或者更小的数进行运算和处理.Java在java.math包中提 供的API类BigDecimal,用来对超过16位有效位的数进行精确的运算.表5.7中列出了BigDecimal类的主要构造器和方法. 构造器  描 述 BigDecimal(int)创建一个具有参数所指定整数值的对象. BigDecimal(double)创建一个具有参数所指定双精度值的对象. BigDecimal(long)创建一个具有参数所指定长整数值的

Java 高精度的大数字运算

为了解决Java基本数据类型在运算时会出现的溢出和计算不精确的问题.Java 提供了两个类BigInteger和BigDecimal,专门用于进行高精度运算.凡是能用int 或float 做的事情,用BigInteger和BigDecimal也可以做,只是必须换用方法调用,而不是使用运算符. 高精度整数BigInteger BigInteger支持任意精度的整数,也就是说我们可精确表示任意大小的整数值:同时在运算过程中不会丢失任何信息: 高精度浮点数BigDecimal 它可以表示任意精度的小数

解决java.math.BigDecimal divide方法运算结果为无限小数问题

http://samueli.iteye.com/blog/224755 BigDecimal除法运算报错,错误如下:Non-terminating decimal expansion; no exact representable decimal result 原因是: BigDecimal divide(BigDecimal divisor, int scale, int roundingMode) if divisor is zero, roundingMode==ROUND_UNNECE

Java的基本数据类型和运算

编码 ASCII--0~127  65-A  97-a 西欧码表---ISO-8859-1---0-255---1个字节 gb2312----0-65535---gbk---2个字节 Unicode编码体系---utf-8---3个字节 中  f bit位 Byte字节 1Byte = 8bit   1KB=1024B  MB GB TB PB---计算机中存储单位 常量 整数常量---所有的整数 3,99,107 小数常量---所有的小数  3.5  100.9 字符常量---用单引号将一个字

Java中i = i++的运算结果

在C/C++中,i = i++的运算结果是不确定的,但是在Java中,结果是确定的. int i = 5; i = i++; System.out.println(i); 输出结果为:5   int i = 5; i = ++i; System.out.println(i); 输出结果为:6   使用javap反汇编后,汇编代码如下: 0: iconst_5 //常量5 1: istore_1 //赋值 将常量5赋值给i 2: iload_1 //读取 3: iinc 1, 1 //自加1 6: