Java语言基础(九)

一.自增运算(++) 自减运算(--)

i++ 就是将i+1再赋给 i

i-- 是将i-1再赋给 i

        

对变量i,j来说,i++ 或++i 这里没什么区别,都是将i的值加1后,再赋给i

++j 与 j++ 也没什么区别,将j的值加1后,再赋给j

但在这里, i++ 与 ++i 是有区别的

          

输出结果为什么是1,考虑一下

初始的时候 i=1, 那么加1后,i 为什么还是1

首先需要说明的是,i=i++ 包含赋值运算(=) 自增运算(++)

其中,自增运算(++)的优先级要高于赋值运算(=)

下图是从网上找的

            

++ 的优先级是2,赋值运算应该是14,数值越小,优先级越大

int i=1;

i=i++执行过程

(1).i++的优先级高,执行++,再执行=

(2).i++,先取i的值作为表达式 i++的值,然后将i的值加1,

此时,i++的值是1,而i的值的是2

(3).再将i++的值(1)赋给i,将2给覆盖了,此时i的值是1

     i 的值的确变了,由1变成了2,但又由2变成了1  所以i的值现在是1

   对i=++i来说,开发软件他会给出

   The assignment to variable i has no effect的提示

    

          

  提示上说,i=++i,对i没有影响

     我们先分析一下(i=++i)这条语句

(1).++的优先级高,执行++,再执行=

(2).++i,先将i加1,然后再将 i 的值赋给表达式++i

此时,i的值的是2, 表达式(++i)的值也是2

(3).再将++i 的值赋给i

i 的值的变化过程,由1变成了2,又由2变成了2

之所以,出现那句提示,那是因为,在++i执行完后,i的值已经是2,

再将++i 的值赋给i ,现在对i的没影响了(都是2),所以才出现那句

上面的可以这样写:

        

自减运算 (i--)

int i=1;

    i=i--;

(1).--的优先级高,执行--,再执行=

(2).i--,先取i的值,然后赋给表达式  i-- ,再将i减1

此时,i的值的是0, 表达式 i-- 的值也是1

(3).再将i--的值赋给i

i 的值的变化过程,由1变成了0,又由0变成了1

与  i=++i  一样的,这样 i=--i 写,也会出现提示

自减运算(--i)

int i=1;

i=--i;

(1).--的优先级高,执行--,再执行=

(2).--i,先将i减1,然后赋给表达式  --i

此时,i的值的是0, 表达式 --i 的值也是0

(3).再将 --i的值赋给 i

i的值的变化过程,由1变成了0,又由0变成了0

       上面的可以这样写:

          

如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的【推荐】。
如果,您希望更容易地发现我的新博客,不妨点击一下左下角的【关注我】。
如果,您对我的博客所讲述的内容有兴趣,请继续关注我的后续博客,我是【刘超★ljc】。

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

Java语言基础(九)的更多相关文章

  1. java语言基础02

    一.Java语言基础(常量的概述和使用)(掌握) 1:什么是常量 就是在程序的执行过程中其值不发生改变的量. 2:Java中常量的分类 (1):字面值常量 (2):自定义常量(面向对象部分讲解) 3: ...

  2. Java学习总结(二)----Java语言基础

    1.     Java语言基础 2.1 关键字 定义:被java语言赋予特殊含义的单词 特点:关键字中的字母都为小写 用于定义数据类型的关键字 class,interface,byte,short,i ...

  3. Java之--Java语言基础组成—数组

    Java语言基础组成-数组 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的数组,数组 ...

  4. Java之--Java语言基础组成—函数

    Java语言基础组成-函数 Java语言由8个模块构成,分别为:关键字.标识符(包名.类名.接口名.常量名.变量名等).注释.常量和变量.运算符.语句.函数.数组. 本片主要介绍Java中的函数,函数 ...

  5. Java之--Java语言基础组成(关键字、标识符、注释、常量和变量、运算符)

    Java语言基础组成-关键字.标识符.注释.常量和变量.运算符 Java语言由8个模块构成,分别为:1.关键字:2.标识符(包名.类名.接口名.常量名.变量名等):3.注释:4.常量和变量:5.运算符 ...

  6. Java语言基础(二) Java关键字

    Java语言基础(二) Java关键字 Java关键字比较多,我就不列举出来了,只记录一些常用的小知识点: ①Java的关键字只有小写. ②then.sizeof都不是Java的关键字,熟悉C++的程 ...

  7. Java语言基础(八)

    Java语言基础(八) 一.数学运算  + - * /  % (1)凡是byte  short  char类型都按int类型的计算   看看上面的代码,为什么出错! 我已经将100转成byte类型,( ...

  8. Java语言基础(七)

    Java语言基础(七) 今天在公司多呆了会,回来晚了 一.自动类型转换 在Java中,数据是可以转换的  例如可以将byte类型的赋给int类型的 这里希望你了解内存的变化,例如 在这里,我想你应该知 ...

  9. Java语言基础(六)

    Java语言基础(六) 前一章提到的, BigDecimal, DecimalFormat等具体用法,这里就不在说了,网上有许多 一.下面让我们看一个例子(自由落体运动位移) 说明: (1).公式是 ...

随机推荐

  1. wpf数据自动树结构

    在项目中,时常会遇到存在上下级关系的数据.在呈现方面,按照传统方法,不得不组装TreeNode之后添加到TreeView 中,已实现树形数据的显示.如果项目中需要多处使用树,毫无疑问这将存在巨大的代码 ...

  2. mp4下载完后才能播放的问题

    下载完后才能播放的问题.mp4视频有metadata,通常在文件尾部,而flash读到这个metadata才开始播放,解决办法是用工具处理一下mp4,把它的metadata移至文件头部. 推荐工具:m ...

  3. Apriori算法在购物篮分析中的运用

    购物篮分析是一个很经典的数据挖掘案例,运用到了Apriori算法.下面从网上下载的一超市某月份的数据库,利用Apriori算法进行管理分析.例子使用Python+MongoDB 处理过程1 数据建模( ...

  4. Android Audio 分析

    一.架构 二.MediaServer初始化 所有的media服务都在进程mediaserver里.其代码在framework/base/media/mediaserver/main_mediaserv ...

  5. VC 项目支撑文件解释

    1.解决方案文件:   a.sln 解决方案.把项目中的所有元素或者多个项目整合到一个解决方案中去. b.suo 解决方案定制项.存储用户级别对解决方案的定制,比如打开状态,断点信息.   这两个文件 ...

  6. Codeforces Round #207 (Div. 2)

    A:超级大水题: 代码: #include<cstdio> #define maxn 105 using namespace std; int n,a[maxn],x,y,ans; int ...

  7. 一些记录查询的SQL语句

    -- ======================== 第三天 =========================== CREATE DATABASE php0408 CHARSET utf8 ;CR ...

  8. 关于spring3中No Session found for current thread!and Transaction的配置和管理(转)

    今天我是特别的郁闷,本来项目做到一半,以前都好好的,结果下午就出现问题,苦逼的到现在才解决.它出现问题的时候都一声不坑, ,(天啦,现在才发现CSDN啥时候把QQ表情给整过来了)就在注册用户的时候,咦 ...

  9. 《Effective C++》条款14 总是让base class拥有virtual destructor

    有时,一个类想跟踪它有多少个对象存在.一个简单的方法是创建一个静态类成员来统计对象的个数.这个成员被初始化为0,在构造函数里加1,析构函数里减1.(条款m26里说明了如何把这种方法封装起来以便很容易地 ...

  10. Learning WCF Chapter 3 Bindings One-Way and Duplex Communication

    One-Way and Duplex Communication A message exchange pattern describes the way messages are sent betw ...