java自加和自减运算过程

废话不多说了,直接给大家贴代码了,具体代码如下所示:

public class Add {
  public static void main(String[] args) {
    int i = 0;
    i=i++ + ++i;
    int j = 0;
    j= ++j + j++ + j++ + j++;
    int k = 0;
    k=k++ + k++ + k++ + ++k;
    int h = 0;
    h=++h + ++h;
    int p1=0,p2=0;
    int q1=0,q2=0;
    q1=+p1;
    q2=p2++;
    System.out.println("i "+i);
    System.out.println("j "+j);
    System.out.println("k "+k);
    System.out.println("h "+h);
    System.out.println("p1 "+p1);
    System.out.println("p2 "+p2);
    System.out.println("q1 "+q1);
    System.out.println("q2 "+q2);
  }
}

输出

i 2
j 7
k 7
h 3
p1 0
p2 1
q1 1
q2 0

解析:i++和++i使用的不同点在于一个是程序完毕后的自增,一个是程序开始前的自增。

“i=i++ + ++i”执行的过程是先执行i++,但是i自增1操作是稍后才执行,所以此时i还是0,然后执行++i,++i后i的值是1,执行完++i后要补增i++,所以此时i的值实际上是2,0+2=2,然后赋值给i,最终i的值是2.

“j= ++j + j++ + j++ + j++”,执行的过程是先++j,所以j的值是1,然后执行j++,j++后j的值仍然是1,然后再执行j++,执行后的结果仍然是1,但要补增刚才的j++,所以此时j的实际值是2,然后执行最后一个j++,执行后的结果仍然是2,但要补增刚才的j++,所以此时j的值实际上是3,所以1+1+2+3=7,然后赋值给j,j的最终值是7.

“k=k++ + k++ + k++ + ++k”执行的过程是先k++,所以k的值是0,然后执行k++,k++后k的值仍然是0,但要补增刚才的k++,所以此时k的值实际上是1,然后再执行最后一个k++,执行后的结果仍然是1,但要补增刚才的k++,所以此时K的值实际上的2,最后执行++k,执行结果为3,再补增刚才的k++,k的实际结果是4,所以0+1+2+4=7,然后赋值给k,最终k的值是7。

“h=++h + ++h”是先自增h,h值为1,再自增好,h值为2,所以1+2=3,然后赋值给h,最终h的值是3.

“q1=++p1”先自增p1,p1的值是1,再赋值给 q1,所以q1的值是1.

“q2=p2++”先赋值p2给q2,q2的值是0,然后再自增p2,所以p2的值是1。

以上所述是小编给大家介绍的java自加和自减运算过程,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

(0)

相关推荐

  • java实现随机输出300题四则运算

    话不多说,请看代码: package demo; import java.util.Random; public class math { public static void main(String[] args) { String[] operate=new String[]{"+","-","×","÷"}; int[] numbers=new int[1000]; for(int i=1;i<=1000;i++)

  • Java语言一元运算符实例解析

    一元运算符,也叫单项算符,一目运算符,一元算符 ,英文名字:UnaryOperator. 描述:接受一个参数为类型T,返回值类型也为T. 源码: public interface UnaryOperator<T> extends Function<T, T> { /** * Returns a unary operator that always returns its input argument. * * @param <T> the type of the inp

  • 大话Java混合运算规则

    重要规则: //byte short char 做混合运算时,先各自转换为 int 类型,再做运算 //以下在编译期就出错,因为编译器只检查语法,jvm不允许 int 转换为 byte(丢失精度),虽然结果为30,但是运算是在运行期 byte a = 10; short b = 20; byte c = (a + b); //报错 System.out.println(c); 结论: 关于基本数据类型转换规则: 1.8中基本数据类型除boolean外都可以相互转换: 2.小容量向大容量转换为自动

  • Java大数字运算之BigInteger 原创

    在 Java 中,有许多数字处理的类,比如 Integer 类.但是Integer 类有一定的局限性,下面我们就来看看比 Integer 类更厉害的一个,BigInteger类. BigInteger类型的数字范围较 Integer 类型的数字范围要大得多.我们都知道 Integer 是 Int 的包装类,int 的最大值为 231-1,如果要计算更大的数字,使用Integer 数据类型就无法实现了,所以 Java 中提供了BigInteger 类来处理更大的数字. BigInteger 支持任

  • 浅谈Java变量赋值运算符及相关实例 原创

    Java程序中,需要进行大量的计算,所以要使用到运算符号,下面来给大家说明Java赋值运算符如何运用. 赋值运算符以符号"="表示,它是一个二元运算符(对两个操作数作处理),其功能是将右方操作数所含的值赋给左方操作数.例如: int a = 100; 该表达式是将100赋值给变量 a .左方的操作数必须是一个变量 ,而右边的才做书则可以是任何表达式,包括变量(如 a .number).常量(123.'book').有效表达式(如55*66).         1:使用赋值运算符为变量赋

  • Java利用条件运算符的嵌套来完成学习成绩的划分

    题目:利用条件运算符的嵌套来完成此题:学习成绩> =90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示. 程序分析:程序分析:(a> b)?a:b这是条件运算符的基本例子. 程序设计: import javax.swing.*; public class ex5 { public static void main(String[] args){ String str=""; str=JOptionPane.showInputDialog("请输

  • java自加和自减运算过程

    废话不多说了,直接给大家贴代码了,具体代码如下所示: public class Add { public static void main(String[] args) { int i = 0; i=i++ + ++i; int j = 0; j= ++j + j++ + j++ + j++; int k = 0; k=k++ + k++ + k++ + ++k; int h = 0; h=++h + ++h; int p1=0,p2=0; int q1=0,q2=0; q1=+p1; q2=p

  • Java利用位运算实现加减运算详解

    目录 前言 思路分析 示例 位运算进位 初步结果 去除加号 整体思路 加法代码实现 减法实现 减法分析 减法代码实现 总结 前言 本文主要介绍如何使用位运算来实现加减功能,也就是在整个运算过程中不能出现加减符号. 加减乘除运算在计算机中,实际上都是用位运算实现的,今天就用位运算来模拟下加法和减法的运算功能. 思路分析 先分析如何用位运算实现加法运算. 示例 假设a=23,b=36,使用位运算实现加法得到结果59. 首先来看下23.36.59的二进制信息. 从上面的图中可以看到,两个数相加的结果与

  • C语言实现大整数加减运算详解

    前言 我们知道,在数学中,数值的大小是没有上限的,但是在计算机中,由于字长的限制,计算机所能表示的范围是有限的,当我们对比较小的数进行运算时,如:1234+5678,这样的数值并没有超出计算机的表示范围,所以可以运算.但是当我们在实际的应用中进行大量的数据处理时,会发现参与运算的数往往超过计算机的基本数据类型的表示范围,比如说,在天文学上,如果一个星球距离我们为100万光年,那么我们将其化简为公里,或者是米的时候,我们会发现这是一个很大的数.这样计算机将无法对其进行直接计算. 可能我们认为实际应

  • 使用MYSQL TIMESTAMP字段进行时间加减运算问题

    目录 MYSQL TIMESTAMP字段进行时间加减运算 计算公式如下 DATETIME 与 TIMESTAMP的区别 结论 参考文档 MYSQL TIMESTAMP字段进行时间加减运算 在数据分析过程中,想当然地对TIMESTAMP字段进行运算,导致结果谬之千里 计算公式如下 -- create_time与week_time的声明都是TIMESTAMP(), 要求精确到分钟 -- SELECT (sa.create_time - sa.week_time)/(1000 * 60) from a

  • ThinkPHP自定义函数解决模板标签加减运算的方法

    本文实例讲述了ThinkPHP自定义函数解决模板标签加减运算的方法.分享给大家供大家参考.具体如下: 实际项目中,我们经常需要标签变量加减运算的操作.但是,在ThinkPHP中,并不支持模板变量直接运算的操作. 幸运的是,它提供了自定义函数的方法,我们可以利用自定义函数解决: ThinkPHP模板自定义函数语法如下: 格式:{:function(-)} (参考官方帮助文档:http://thinkphp.cn/Manual/196) 利用这个,我们来试做加法和减法. 一.在ThinkPHP中定义

  • PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算示例【基于strtotime】

    本文实例讲述了PHP实现针对日期,月数,天数,周数,小时,分,秒等的加减运算方法.分享给大家供大家参考,具体如下: 其实就是strtotime这个内置函数 //PHP 日期 加减 周 date("Y-m-d",strtotime("2013-11-12 +1 week")) //PHP 日期 加减 天数 date("Y-m-d",strtotime("2013-11-12 12:12:12 +1 day")) //PHP 日期

  • js实现文本框支持加减运算的方法

    本文实例讲述了js实现文本框支持加减运算的方法.分享给大家供大家参考.具体如下: 这是一个网页表单效果,让表单内的文本框支持加减运算,不过你要按正确的运算式输入,要不然它没有那么智能哦,比如输入1+5,文本框旁边会显示计算结果,这要归功于JavaScript的功能. 运行效果截图如下: 在线演示地址如下: http://demo.jb51.net/js/2015/js-math-input-method-codes/ 具体代码如下: <!DOCTYPE html PUBLIC "-//W3

  • C语言中指针的加减运算方法示例

    参考文章,值得一看 char arr[3]; printf("arr:\n%d\n%d\n%d\n", arr, arr + 1, arr + 2); char *parr[3]; printf("parr:\n%d\n%d\n%d\n", parr, parr + 1, parr + 2); 从结果可以看到,字符数组每个元素占1字节,字符指针数组每个占4字节. 再看一个例子: char a = 'a', b = 'b', c = 'c', d = 'd'; cha

  • Vue入门之数量加减运算操作示例

    本文实例讲述了Vue入门之数量加减运算操作.分享给大家供大家参考,具体如下: 效果图: HTML: <div class="count3"> <ul> <li v-for="(key,idx) in liList" :key="key.id"> {{key.id}},{{idx}} <template> <button class="cut" @click="cu

  • Java加载property文件配置过程解析

    这篇文章主要介绍了java加载property文件配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1 properties简介: properties是一种文本文件,内容格式为: key = value #单行注释 适合作为简单配置文件使用,通常作为参数配置.国际化资源文件使用. 对于复杂的配置,就需要使用XML.YML.JSON等了 2 java加载Properties: java加载properties主要通过2个util包下的

随机推荐