《第2章Java语法基础2.ppt》由会员分享,可在线阅读,更多相关《第2章Java语法基础2.ppt(29页珍藏版)》请在三一文库上搜索。
1、Java程序设计,Java语法基础 2,回顾,掌握标识符的定义规则 掌握各种简单数据类型的使用 掌握了各种基本数据类型的直接量表示 掌握了常量的定义 掌握了变量的申明 了解了常用的保留字和分隔符,本次课主要内容,Java运算符、表达式 产生指定范围的随机数 单分支语句(if语句),能力要求,1.正确定义与使用变量、常量,正确使用运算符与表达进行数值计算和逻辑运算程序的处理。 2.会编写顺序结构程序。 3 .会编写单分支结构程序。 4.会产生指定范围的随机整数。,Java运算符与表达式,运算符 运算符是一种特殊字符,它指明用户对操作数进行的某种操作。 表达式:是由常量、变量、方法调用以及一个或多
2、个运算符按照一定规则的组合。它用于计算或对变量赋值。,Java运算符,按照运算符功能来分,运算符有8类: 算术运算符 + -(减) * / % + - (取负) 关系运算符 = 条件运算符 表达式1?表达式2:表达式3 赋值运算符 = += -= *= /= %= 字符串连接运算符 + 其它运算符 () .,按连接操作数的运算符的数目来划分,分为单目(一元)运算、双目(二元)运算符和三目(三元)运算符,算术运算符,标准运算符 作用 运算符 示例 注释 加法 + sum=num1+num2 减法 - sum=num1-num2 乘法 * sum=num1 * num2 除法 / sum=num1
3、/num2 取余 % sum=num1%num2 31%6=1 增量 + num+ 减量 - num-,增量和减量运算符(+ 和 -),运算符 作用 语法 示例 + 前增量 j=+i; int i=6; int j=+i; i is 7,j is 7 后增量 j=i+; int i=6; int j=i+; i is 7,j is 6 - - 前减量 j=-i ; int i=6; int j=-i; i is 5,j is 5 后减量 j=i-; int i=6; int j=i-; i is 5,j is 6,实战演习,分析程序段的结果: int a=1,b=10,c=5,d; d=a+*
4、b; System.out.println(“a=”+a+“: d=”+d); d=+a%c; System.out.println(“a=”+a+“:d=”+d); 请用程序验证。,数据与数据类型不匹配的示例,1、请将上例中的d的类型定义为byte,请编译执行程序,出现什么问题? 2、请将上例中的a,b,c类型定义为byte,d的类型定义为int,请编译执行程序,出现什么问题?,数据类型转换,下列情况升级将自动进行类型转换: 将一个较小的类型赋给一个较大的类型 将整数类型赋给浮点类型 byte a=3; byte b=3; int c=a+b; 强制类型转换 int a=3; int b=3
5、; byte c=(byte) (a+b);,强制类型转换时需注意什么?,类型转换,浮点类型转换为整数类型将使所有的小数部分丢失。 类型转换会缩小值的范围(“chops it down”) byte num1 = 53; byte num2 = 47; long num3; num3 = (num1+num2); /No data loss int myInt; long myLong = 99L; myInt = (int) (myLong); /No data loss int myInt; long myLong = 123422222222; myInt = (int) (myLong
6、); /Number is chopped,整型和浮点型数据类型,如果没有特别声明为浮点类型,实数类型的值通常将缺省设为double类型。 float float1 = 27.9; /causes error float float1 = 27.9F; / would work correctly float float1 = (float)27.9; / would work correctly 短整型运算:+,-,/,%,*,+,- 分析下面程序段的输出,并编程验证: byte data1=30,date3=4,data2; data2=date3data1; System.out.pri
7、ntln(data2); 知识点:byte/short数据类型以32位长度参与运算, 结果为32长度,混合运算:类型转换,隠式数据类型转换: 当整型与浮点型数据进行混合运算时,表达式中的数据类型会进行相应的自动转换,规则为:byte-short-int-long-float-double。这种转换规则也适应于赋值语句,当赋值符左右两侧变量类型不一致时,只要转换过程中不丢失数据,便进行自动转换。,混合运算:类型转换,分析下面代码段中f2的值,并编写程序进行验证。 float f1=2.5,f2; int a=7,b=2,c; f2=f1+a/b; c=a/b; 打印f2和c,(大于) =(大于等
8、于) =(小于等于) =(等于) !=(不等于),关系运算符,运算结果数据类型:boolean 问题:关系运算符两边的数据类型是否必须一致? 分析调试下面程序 int a=4,b=5; boolean c1,c2; float a1=4.0f; c1=ab;c2=a=a1; System.out.println(“c1=“+c1+“ c2=“+c2);,将b的类型换为float可以吗?换为char型可以吗?换为boolean型可以吗?,关系运算符两边的数据类型可以不同,但boolean类型的数据只能进行“=”或“!=”两种关系运算。,逻辑运算符,问题1:进行逻辑运算的操作数的类型是什么类型?
9、运算结果的类型是什么类型? 问题2:&和&的区别是什么?|和|的区别又如何? 演示例题logicOperation观察其运行结果。,!(非) &(短路与) |(短路或) (异或) & (与) |(或),条件运算符,表达式1?表达式2:表达式3 表达式1 是一个逻辑表达式或关系表达式,当表达式1的值为true 时计算并返回表达式2的值,若为false,则计算并返回表达式3的值。,调试运行例题conditionOperation,观察其运行结果。,赋值运算符,简单赋值运算符 := c=a+10 x=20*a+100 复合赋值运算符:-= += *= /= %= 与C语言一样,Java也提供了很多的
10、复合赋值运算符,是简单赋值表达式的一种缩写。如 x+=10 等价于 x=x+10 x*=10 0等价于 x=x*100,字符串连接运算符,Java 中对运算符“+”进行了重载(就是对同一个运算符赋予了两种以上的含义,在不同的场合可以标记不同的操作。)字符串连接运算符的操作有两种情况: 字符串+字符串 字符串+基本数据类型数据或对象 例如 “hello”+” world”结果为“hello world” int c=100; “c=”+c的结果为“c=100”,运算符优先级,运算符优先级,1、 该表中优先级按照从高到低的顺序书写,也就是优先级为1的优先级最高,优先级14的优先级最低。 2、 结合
11、性是指运算符结合的顺序,通常都是从左到右。从右向左的运算符最典型的就是负号,例如3+-4,则意义为3加-4,符号首先和运算符右侧的内容结合。 3、 instanceof作用是判断对象是否为某个类或接口类型,后续有详细介绍。 4、 注意区分正负号和加减号,以及按位与和逻辑与的区别,运算符优先级,其实在实际的开发中,不需要去记忆运算符的优先级别,也不要刻意的使用运算符的优先级别,对于不清楚优先级的地方使用小括号去进行替代,示例代码: int m = 12; int n = m 1 + 2; int n = m (1 + 2); /这样更直观 这样书写代码,更方便编写代码,也便于代码的阅读和维护。,
12、单分支语句(if语句)P52判断语句if,单分支语句格式 if(boolean-expression) statement ;,编程实践:调试运行例题IfDemo。 问题:random()位于哪个包?哪个类?其功能是什么?,生活中使用if判断的实例?,产生指定范围内的随机整数P113,产生一个x1,x2区间内的随机整数x x=(int)(Math.random()*(x2-x1+1)+x1) 其中,Math.random()产生一个0,1)区间内 的实数。,小结,Java运算符 产生指定范围的随机数 Java分支结构程序设计,课后作业,1、程序部分代码如下,写出执行本段程序后m,n的值 int
13、 i=8,j=10,m,n; m=+i; n=j+; m=+j; n=i+; 2、写出下面表达式运算后a的值,设原来a=12,n=5,a和n都定义为int变量。 (1)a+=a; (2)a-2; (3)a*=2+3; (4)a%=(n,课后作业,3、求下面算术表达式的值。 (1)x+a%3*(int)(x+y)%2/4;/设x=2.5,a=7,y=4.7; (2)(float)(a+b)/2+(int)x%(int)y;/设a=2,b=3,x=3.5,y=2.5 4、写出下面逻辑表达式的值 (1)3+45 (2)(35)|(6=5)|(3!=3) (3)(5!=10)&(3=2+1)|(42+5),课后作业,编一程序,产生三个随机数作为三角形的三条边,检验是否构成三角形,若可以,输出三条边的长度,计算其面积并输出。 提示: a,b,c是三角形的三条边,则任意两边的和大于第三边。(或任意两边的差小于第三边)。 三角形面积=Math.sqrt(s*(s-a)*(s-b)*s-c),其中 s=1/2(a+b+c) 。,
链接地址:https://www.31doc.com/p-2576955.html