Java编程那些事儿24—赋值运算符

郑州游戏学院 陈跃峰

4.4 赋值运算符

赋值运算符是指为变量或常量指定数值的符号。最基本的赋值运算符是“=”。

由于Java语言是强类型的语言,所以赋值时要求类型必须匹配,如果类型不匹配时需要能自动转换为对应的类型,否则将报语法错误。示例代码:

byte b = 12;      //类型匹配,直接赋值

int n = 10;       //类型匹配,直接赋值

double d = 100; //类型不匹配,系统首先自动将100转换成100.0,然后赋值

char c = -100;   //类型不匹配,无法自动转换,语法错误

需要强调的是,只能为变量和常量赋值,不能为运算式赋值,例如:

int a = 10;

int b = 2;

a + b = 100; //不能为运算式a + b赋值,语法错误

常量只能赋值一次,否则也将出现语法错误,例如:

final int N = 10;

N = 20; //常量只能赋值一次,语法错误

在基本的赋值运算符基础上,可以组合算术运算符,以及后续将学习的位运算符,从而组成复合赋值运算符。赋值运算符和算术运算符组成的复合赋值运算符如下表4-4所示。

表4-4 复合赋值运算符

符号 名称 功能说明

+= 加等 把变量加上右侧的值然后再赋值给自身

-= 减等 把变量减去右侧的值然后再赋值给自身

*= 乘等 把变量乘以右侧的值然后再赋值给自身

/= 除等 把变量除以右侧的值然后再赋值给自身

%= 取余等 把变量和右侧的值取余然后再赋值给自身

实际使用示例:

int n = 2;

n += 3;

说明:计算以前n的值是2,也就是把n + 3的值,也就是5再赋值给n,经过运算以后n的值为5,因为该代码只执行一次,所以不会导致循环。

依次类推,其它的复合赋值运算符也是这样:

int n = 10;

n -= 2; //则n的值是8

n *= 3; //因为n的初值是8,则n运算后的结果是24

n /= 5; //因为n的初值是24,则n运算后的值是4

注意:复合赋值运算不会改变结果的类型,所以在有些时候运算在逻辑上会出现错误,但是符合计算中数值的表述。例如:

byte b = 127;

b += 1;

System.out.println(b);

根据前面的介绍,byte类型的取值区间是-128~127,由于复合赋值运算符不改变结果的类型,则导致结果是-128,而不是128。原因如下:

1. byte类型值127的机器数是01111111,0表示正数,后续的数值表示127

2. 该数值加1后,得到的数值是10000000,二进制加法

3. 而10000000在byte类型中恰好是-128的机器数表示形式

其它类型的符合运算符也可能存在类似的情况,使用时需要注意。

java编程赋值运算符_(24)赋值运算符相关推荐

  1. Java编程题_面向对象和常用API01_B级

    Java编程题_面向对象和常用API01_B级 第1题 面向对象.异常.集合.IO 题干: 请编写程序,完成键盘录入学生信息,并计算总分将学生信息与总分一同写入文本文件 需求:键盘录入3个学生信息(姓 ...

  2. java基础案例教程第二章_第2章Java编程基础_补充案例教程.doc

    第2章Java编程基础_补充案例教程 博学谷--让IT教学更简单,让IT学习更有效博学谷--让IT教学更简单,让IT学习更有效 PAGE \* MERGEFORMAT34PAGE \* MERGEFO ...

  3. java 编程题_最新JAVA编程题全集(50题及答案)92862

    <最新JAVA编程题全集(50题及答案)92862>由会员分享,可在线阅读,更多相关<最新JAVA编程题全集(50题及答案)92862(32页珍藏版)>请在人人文库网上搜索. ...

  4. java编程学习方法_在线学习Java编程的最佳方法

    java编程学习方法 1.简介 Java是使用最广泛的编程语言之一. 根据Github的最新报告 ,Java被列为仅次于JavaScript的第二大最常用的编程语言. 掌握Java的人有很多话题. 好 ...

  5. java编程概念_使用漫画设计教编程概念

    java编程概念 Computing literacy has become an important skill for students today. However, programming r ...

  6. java 编程技巧_一些实用的 Java 编程技巧

    任何事情有可能出错,没错,的确如此. 这就是为什么我们要采用"防御性编程",即一些偏执习惯的原因.下面是我个人认为的 10 个最有用但偏执的 Java 编程技术.一起来看一看吧: ...

  7. pta中java编程题_多文件编程题

    多文件编程题与函数题相似,区别是裁判编写的判题程序可能涉及多个文件,因此不是写在题干里,而是以附件的形式供学生下载,方便学生调试.学生须按照题干上给出的要求编写程序,完成指定功能.学生的提交也可能包含 ...

  8. java 编程联系_《JAVA程序设计》结对编程联系_四则运算(第二周:整体性总结)...

    #结对对象与其博客链接 20175312陶光远:https://www.cnblogs.com/20175312-tgy/p/10697238.html #需求分析 (一)功能需求 1.自动生成题目( ...

  9. java编程实例_几个java编程的典型例子

    1.模拟酒店房间管理系统,需要如下几个功能: 1.1 in 房间号 客人名字 入住功能 1.2 out 房间号 退房功能 1.3 search 房间号 查询房间状态 如果房间号为-1 则输出所有房间状 ...

  10. 达内java编程 学费_东莞达内Java开发课程学费多少

    众所周知,从编程语言列表开始学习Java是非常困难的.除了科学地选择一种适合自己的编程语言之外,还有入门的方法吗?下面就来说说入门学习java的方法. 学习语言基础 显然,掌握语言基础是步.如果你不知 ...

最新文章

  1. MVC 之 架构的基本原理及Asp.Net实现MVC
  2. R语言学习笔记之——数据处理神器data.table
  3. DL之CNN:卷积神经网络算法简介之原理简介(步幅/填充/特征图)、七大层级结构(动态图详解卷积/池化+方块法理解卷积运算)、CNN各层作用及其可视化等之详细攻略
  4. linux系统解决boot空间不足
  5. eclipse CTRL+F Find/Replace使用正则表达式
  6. loj10200. 「一本通 6.2 练习 3」Goldbach's Conjecture
  7. Visual Studio 2013 添加一般应用程序(.ashx)文件到SharePoint项目
  8. html和php文件怎么连接,html页面跟php文件连接的方法
  9. 最近谷歌苹果亚马逊扎堆收购的公司,会不会下一个就是你?
  10. !heap 和 _HEAP_ENTRY
  11. 【已解决】瞎设置代理服务器后IE浏览器上不了网
  12. 测度、线性赋范空间、内积空间
  13. 动物识别系统c语言编程,人工智能期末论文-简单动物识别系统的知识表示.doc
  14. python百分比堆积条形图_绘制比例数据python(堆积条形图)
  15. 北漂7年,我最终还是回了老家。。。
  16. python面向对象试题_python面向对象程序设计-中国大学mooc-试题题目及答案
  17. 1.用户界面原理和界面库编程模型
  18. Swoole的基本使用
  19. SAP MTO案例教程AP应付会计前台操作
  20. Android应用开发之FrameLayout(帧布局)

热门文章

  1. python的心得体会200字_python_学习心得
  2. mysql 6.2使用_2. MYSQL基本使用(2)
  3. python编程单词排序_Python读取英文文件并记录每个单词出现次数后降序输出示例...
  4. 百度一款前端图片合成工具库MI开源啦!
  5. mysql aa复制_MySQL主从复制实现
  6. 国产linux 中标麒麟安装.net core sdk
  7. Oracle索引知识学习笔记
  8. LeetCode 202 -- python 计算 happy number
  9. 第三模块:面向对象(目录)
  10. cogs 1656. 膜拜神犇