Java语言2Java运算符与表达式.ppt

上传人:max****ui 文档编号:6364303 上传时间:2020-02-24 格式:PPT 页数:35 大小:771.55KB
返回 下载 相关 举报
Java语言2Java运算符与表达式.ppt_第1页
第1页 / 共35页
Java语言2Java运算符与表达式.ppt_第2页
第2页 / 共35页
Java语言2Java运算符与表达式.ppt_第3页
第3页 / 共35页
点击查看更多>>
资源描述
Java语言程序设计 资源与环境科学学院 第二章Java语言基础 Java的基础语法 1 Java程序必须放在一个类中 Java是严格区分大小写的 Java是一种自由格式的语言一条语句可以分成多行来书写 但是在换行时不能将一个单词分隔 一个字符串也不能分隔 如果一定要分隔字符串 那就要用 号相连 Java程序有三种注释方式 多行注释 单行注释 文件注释 这表明此后正文内容可以由自动文档生成器javadoc读取 它可以为JavaAPI生成HTML文件 Java的基础语法 2 java中的标识符java中的包 类 方法 参数和变量的名字 可由任意顺序的大小写字母 数字 下划线 和美元符号 组成 但标识符不能以数字开头 不能是关键字 合法的标识符 indentifierusernameuser name userName username 非法的标识符 class98 3HelloWorld Java的关键字 注 java留做将来使用的goto const关键字 不能用作变量名 Java的常量 1 整型常量十进制 12 八进制 012 十六进制 0 x12 长整型常量13L 单精度浮点数5 1f 4f 0f 双精度浮点数5 1 4 0d 布尔常量true和false Java的常量 2 字符常量 a 8 u0027 r 表示接受键盘输入 相当于按下了回车键 n 是换行 t 是制表符 相当于table键 b 是退格键 相当于BackSpace 是单引号 而 是双引号 是一个斜杠 字符串常量 HelloWorld 123 Welcome nXXX null常量null常量只有一个值 用null表示 表示对象的引用为空 Java的常量 3 要声明常量 可在变量声明前加上关键字final 并给变量指定一个初值 如finaldoublePI 3 141592finalbooleanDEBUG falsefinalintPENALTY 25实例程序 书P21 Java的变量 1 变量 是系统为程序分配的一块内存单元 用来存储各种类型的数据 根据所存储的数据类型的不同 有各种不同类型的变量 变量名代表这块内存中的数据 Java的变量 2 Java的变量 3 字节类型byte占用一个字节 8位 数字大小为 27 27 1 短整数类型short占用两个字节 16位 数字大小为 215 215 1 整数类型int占用四个字节 32位 数字大小为 231 231 1 长整数类型long占用八个字节 64位 数字大小为 263 263 1 Java的变量 4 单精度浮点类型float占用四个字节 32位 数字大小为1 4E 45 3 4E38F 有效数位约为6 7位 双精度浮点类型double占用八个字节 64位 数字大小为4 9E 324 1 7E308 有效数位约为14 15位 字符类型char占用两个字节 16位 数字大小为0 216 1 是unicode编码 字符类型是一种基于整数的类型 可以直接算术运算 布尔类型boolean取值只有两个 true和false Java类型转换 编译程序将会检查数据类型 防止两个不兼容的数据类型之间随意进行赋值 类型转换分两类 自动类型转换 也叫隐式类型转换 某些数值的转换不需要强制进行 Java允许把一个较小的数据类型的值直接赋给一个具有较大范围的数据类型的变量 例 把整数类型的值赋给长整数类型的值 强制类型转换 也叫显式类型转换 通过在表达式前面的圆括号中写入新的类型名 即可以把一个表达式强制转换成另一个数据类型 例 floatf 3 142F intt int f 变量的生命周期 变量要先定义 后使用 但不是在变量定义后的语句一直都能使用前面定义的变量 我们可以用大括号将多个语句包起来形成一个复合语句 变量只能在定义它的复合语句中使用 publicclassTestScope publicstaticvoidmain String args intx 12 intq 96 x和q都可用intx 3 System out println xis x System out println qis q q x System out println xis x 错误的定义 Java中不允许有这种嵌套定义 错误的行 只有x可用 q超出了作用域范围 Java的类型系统 Java中的运算符 运算符的定义 运算符是一种特殊符号 用以表示数据的运算 赋值和比较 一般由一至三个字符组成 运算符共分以下几种 算术运算符赋值运算符比较运算符逻辑运算符移位运算符 算术运算符 算术运算符中注意问题 除字符串相加功能外 还能把非字符串转换成字符串 如 x 123 的结果是 x123 如果对负数取模 可以把模数负号忽略不记 如 5 2 1 但被模数是负数就另当别论了 如 7 2 1对于除号 它的整数除和小数除是有区别的 整数之间做除法时 只保留整数部分而舍弃小数部分 intx 3510 x x 1000 1000 等于 实际运行结果是3000 算术运算符的应用技巧 思考题1 某个培训中心要为新到的学员安排房间 假设共有x个学员 每个房间可以住6人 让你用一个公式来计算他们要住的房间数 思考题2 假设你要让x的值在0至9之间循环变化 请写出相应的程序代码 答案 x 5 6 这种算法还可用在查看留言板的分页显示上 其中x是总共的留言数 6是每页显示的留言数 结果就是总共有多少页 答案 intx 0 while true x x 1 10 另一个编程实例 书P25 赋值运算符 注1 在JAVA里可以把赋值语句连在一起 如 x y z 5 在这个语句中 所有三个变量都得到同样的值5 注2 x 3等效于x x 3 依此类推 比较运算符 5 注1 比较运算符的结果都是boolean型 也就是要么是true 要么是false 注2 比较运算符 不能误写成 切记 切记 逻辑运算符 注1 逻辑运算符用于对boolean型结果的表达式进行运算 运算的结果都是boolean型 注2 和 可作用于两个布尔操作数或两个整数操作数 作用于布尔操作数时 无论任何情况 两边的表达式都会参与计算 如果使用 当 的左边为false 则将不会计算其右边的表达式 和 的区别与 和 的区别一样 见书 P28 和 的区别分析 publicclassTestAnd publicstaticvoidmain String args intx 0 inty 3 if x 0 上面例子中 由于if语句的判断条件中的第一个布尔表达式是不成立的 程序就不会判断第二个布尔表达式的值 这就是 短路 如果两个表达式之间用 来连接 如果正好碰到上面所示的特殊情况 就会出错 位运算符 任何信息在计算机中都是以二进制的形式保存的 除了可以作为逻辑运算符 也可以做为位算符 它们对两个操作数中的每一个二进制位都进行运算 只有参加运算的两位都为1 运算的结果才为1 否则就为0 只有参加运算的两位都为0 运算的结果才为0 否则就为1 只有参加运算的两位不同 运算的结果才为1 否则就为0 位运算符 我们可以对数据按二进制位进行移位操作 java的移位运算符有三种 右移 带符号右移 带符号右移 空出高位改成最高位值 无符号右移 右移零填充 无符号位移 空出高位补0 和 区别分析 publicclassShiftTest publicstaticvoidmain String args intx 0 x80000000 x十进制为 2 31 2147483648inty 0 x80000000 x x 1 y y 1 System out println 0 x80000000 1 Integer toHexString x System out println 0 x80000000 1 Integer toHexString y 运行结果如下 0 x80000000 1 0 xc0000000 十进制为 10737418240 x80000000 1 0 x40000000 十进制为 1073741824十六进制与二进的对比0 x8000000016 1000 0000 0000 0000 0000 0000 0000 00000 xc000000016 1100 0000 0000 0000 0000 0000 0000 00000 x4000000016 0100 0000 0000 0000 0000 0000 0000 0000 位运算注意问题 1 移位运算符适用类型有byte short char int long对低于int型的操作数将先自动转换为int型再移位对于int型整数移位a b 系统先将b对32取模 得到的结果才是真正移位的位数 例如 a 33和a 1结果是一样的 a 32的结果还是a原来的数字对于long型整数移位时a b 则是先将移位位数b对64取模 位运算注意问题 2 移位不会改变变量本身的值 如a 1 在一行语句中单独存在 毫无意义 x 1的结果和x 2的结果是一样的 x 2和x 4的结果也是一样的 总之 一个数左移n位 就是等于这个数乘以2的n次方 一个数右移n位 就是等于这个数除以2的n次方 请思考 如何用程序实现求2的x次方 答案 y 1 x 运算符号的优先级 我们可以使用括号改变运算赋的优先级 分析inta 2 intb a 3 a 语句的执行过程与inta 2 intb a 3 a 语句的执行过程的区别 多个运算符的注意问题 对于inta 2 intb a 3 a 这样的语句 b最终等于多少呢 对于inta 2 intb 3 a a 这样的语句 b最终等于多少呢 对于inta 2 intb a 3 a 这样的语句 b最终等于多少呢 Java的计算顺序规定 对于所有二元运算符 带两个操作数 在计算右边的操作数之前 总是应当先全部计算出左边的操作数 因此 b c d b必须在指向乘法操作之前先行计算 因为对加法运算来说 乘法是它右边的操作数 试验得到的结果是a 3 b 8 试验得到的结果是a 3 b 9 试验得到的结果是a 3 b 11 多个运算符的注意问题 publicclassMathTest Java应用程序由main方法开始执行publicstaticvoidmain Stringargs inta 2 intb a 3 a System out println a a System out println b b 多个运算符的注意问题 与其去思考其中的原因 我们还不如将上面的第二句改为几条语句来实现我们想要的结果 不要在一行中编写太复杂的表达式 也就是不要在一行中进行太多的运算在一行中进行太多的运算并不能为你带来什么好处 相反只能带来坏处 它并不比改成几条语句的运行速度快 它除可读性差外 还极容易出错 对于优先级顺序 不用刻意去记 有个印象就行 如果你实在弄不清这些运算先后关系的话 就用括号或是分成多条语句来完成你想要的功能 因为括号的优先级是最高的 本章总结 掌握Java的基础语法 程序编写位置 大小写 注释方式 标识符 关键字 掌握Java的常量和变量数据类型 各数据类型所占字节数 数据表达范围 类型转换 变量的生命周期问题 掌握Java的运算符 算术运算符及注意问题 赋值运算符号 比较运算符 逻辑运算符 位运算符及注意问题 运算符的优先级及多个运算符的注意问题 思考题 Java有哪些数据类型 各数据类型所占字节数是多少 类型转换分为几类 Java有哪些运算符类型 使用时分别需要注意哪些问题
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!