《第3章 运算符表达式和控制流程精选PPT.ppt》由会员分享,可在线阅读,更多相关《第3章 运算符表达式和控制流程精选PPT.ppt(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3章 运算符表达式和控制流程第1页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院主要内容主要内容运算符和表达式1流程控制2标准输入/输出3第2页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院3.1 运算符和表达式 基本概念基本概念运算符:用于标记对数据执行某种运算的特定符号。操作数:参加运算的数据称为运算对象(操作数)。分类按运算符的功能,将运算符分为:算术运算符、关系运算符、逻辑运算符、位
2、运算符等按参与运算的操作数的个数,将运算符分为:单目运算符、双目运算符、三目运算符表达式:若干操作数(operand)和运算符(operator)按照约定规则构成的一个序列。第3页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院 算术运算符算术运算符加运算符+:连接两个字符串。例如,“abc”+12的结果为“abc12”;”abc”+1+2=?“abc”+(1+2)=?Java语言既可对整数取模,也可以对小数取模。例如,16.25=1.2char类型的数据可以进行算术运算,而boolean类型的
3、数据不能进行算术运算。+(-)运算符的操作数必须是变量,不能是常量或表达式。+i 或者 i+(注意两者的区别)例3.1 自增自减运算符的使用。3.1 运算符和表达式第4页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院 关系运算符关系运算符 关系运算符用于判断两个操作数的等价性和大小关系,得到的结果为布尔类型,取值为true或false。常用于逻辑判断(if语句或循环)。例3.2 关系运算符的使用。逻辑运算符逻辑运算符 逻辑运算符可以对boolean类型数据进行逻辑上的“与”、“或”、“非”、“
4、异或”等运算,结果仍为boolean类型,通常用于程序的流程控制。逻辑运算符&(&)、|(|)、!注意:运算符(&、|)和运算符(&、|)的区别。利用&、|作运算时,运算符左右两边的表达式都会被执行,最后两表达式的结果再进行与、或运算;而利用&、|作逻辑运算时,如果只计算运算符左边的表达式即可确定与、或的结果,则右边的表达式将不会执行。例3.3 逻辑运算符的使用。3.1 运算符和表达式第5页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院 位运算符位运算符 位运算符用来对整型(byte、shor
5、t、int、long)或字符型(char)数据二进制位进行操作,结果为一个整数。(按位取反)格式:a 功能:将操作数a中的二进制位由1变0,由0变1。例如:int x=2;x?&(按位相与)格式:a&b功能:两个操作数的相应位都为1,则该位为1,否则为0。例如,int x=2,y=7;x&y=?3.1 运算符和表达式第6页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院|(按位相或)格式:a|b功能:两个操作数的相应位中有一个为1,则该位的结果为1。例如,int x=5,y=8;x|y=?(按位
6、相异或)格式:a b功能:两个操作数的相应位相异,则该位的结果为1,否则为0。例如,int x=5,y=8;x y=?例3.4 位运算的使用。注意:运算符&、|、什么时候实施的是逻辑运算?什么时候实施的是位运算?3.1 运算符和表达式第7页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院(按位右移)格式:a b功能:将a右移b位,右端的低位被舍弃,左端高位补原来的符号位。例如,byte x6;x 2 =?(按位左移)格式:a b功能:将a左移b位,右端的低位补0,左端的高位被舍弃。例如,byte
7、 x6;x(无符号右移)格式:a b功能:将a右移b位,右端的低位被舍弃,左端的高位补0。例如,byte x6;x 2 =?3.1 运算符和表达式第8页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院注意:移位运算时真正的移位位数不一定是指定的b位。当a为int型(或byte、short、char型)时,系统会先将b对32取模,得到的结果才是真正移位的位数,而当a为long型时,系统先将b对64取模,得到的结果作为真正的移位位数。例3.5 位运算的综合应用。分析:方法getOneBit()可以返
8、回参数num的第n-1位。public int getOneBit(int num,int n)int i=1 (n-1);3.1 运算符和表达式第9页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院 赋值运算符赋值运算符格式:变量=表达式double d=7.8f;/合法int a=78L;/非法int a=(int)78L;/合法复合的赋值运算符+=-=*=/=%=&=|=条件运算符条件运算符 格式:表达式1?表达式2:表达式3需注意:表达式1应是boolean类型的表达式;表达式2和表达式
9、3的类型要一致。不允许是常量或表达式 当赋值运算符两侧的类型不一致时,如果左侧变量的数据类型的表示范围更大,则把右侧的数据自动转换为与左侧相同的数据类型,然后赋给左侧变量,否则,需要使用强制类型转换运算符。3.1 运算符和表达式第10页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院例3.6 条件运算符的使用。分析:弹出输入对话框,接收用户输入:JOptionPane.showInputDialog(s)将数字的字符串表示形式转换为整数:Integer.parseInt(s)result=(sc
10、ore=60)?及格:不及格System.out.println(result);3.1 运算符和表达式第11页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院 表达式表达式 表达式(expression)是由若干操作数(operand)和运算符(operator)按照约定规则构成的一个序列。运算符标明对操作数进行何种操作;操作数可以是变量、常量或有返回值的方法调用等其他的表达式。(a-b)/c+4 5=a a3&a10 10*max(a,b)a=10 100如何正确计算表达式的值?运算符的优先
11、级运算符的结合性例3.7 计算表达式的值3.1 运算符和表达式第12页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院 表达式中的数据类型转换表达式中的数据类型转换 自动类型转换 当不同类型的常量和变量在表达式中混合使用时,它们最终将被转换为同一类型,然后进行运算。为了保证精度,转换从表示数的范围较小的数据类型到表示数的范围较大的数据类型。(byte或short)和intint(byte或short或int)和longlong(byte或short或int或long)和floatfloat(by
12、te或short或int或long或float)和doubledoublechar和intint 注意:箭头左边表示参与运算的数据类型,操作可以是算术运算、赋值运算等,箭头右边表示转换后进行运行的数据类型 例如:long longVar=12345;double doubleVar=1.2f;float f=23456434563L;doubleVar=doubleVar*(12+longVar);int a=doubleVar/100;/错,需使用强制类型转换注意:布尔类型不能与任何其它数据类型转换。3.1 运算符和表达式第13页,本讲稿共26页http:/221.192.237.88:82
13、http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院 强制类型转换格式:(目标数据类型)变量或表达式例如,(float)5/9*(f-32)注意:强制类型转换时,由于目标数据类型的取值范围小于待转换数据类型的取值范围,在转换过程中会出现截断,导致高位数据丢失或精度下降。例3.8将32位整数65366强制转换为byte型后,整数的高位被截掉,只剩下低8位,字节数据为86,导致数据丢失。例3.9 数值的类型转换。3.1 运算符和表达式第14页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术
14、学院河北软件职业技术学院3.2 流程控制三种基本的流程控制结构三种基本的流程控制结构 顺序结构分支结构:if-else语句、switch语句循环结构:while语句、do-while语句、for语句、break语句、continue语句、return语句break语句语句格式:break;或 break 标号;功能:带标号的break语句从多重循环体的内部跳出到标号所标志的那层循环,并从标号标志的那层循环后面的语句继续执行。定义在程序中循环语句前面的标识符,后跟一个冒号,标志要跳出的循环层次第15页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237
15、.88:82河北软件职业技术学院河北软件职业技术学院注意:在多重循环中,不带标号的break语句将只退出它所在的内循环。例3.22 带标号的break语句的使用。outer:for(int i=0;i 5;i+)for(int j=0;j 3;j+)。if(j=1)/跳出outer标签所标识的循环。break outer;3.2 流程控制第16页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院 continue语句语句格式:continue;或 continue 标号;功能:带标号的contin
16、ue语句可从多重循环的内层循环跳到外层循环,执行标号所标识的循环的下一轮。例3.24 带标号的continue语句的使用。outer:for(int i=0;i 3;i+)for(int j=0;j 3;j+)。if(j=1)continue outer;3.2 流程控制第17页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院 return语句语句 return关键字并不是专门用于跳出循环的,而是结束一个方法。一旦在循环体内执行到一个return语句,该方法将会结束,循环自然也随之结束。例3.2
17、5 使用return结束循环。for(int i=0;i 3;i+)System.out.println(i的值是+i);if(i=1)return;System.out.println(“return后的输出语句);3.2 流程控制第18页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院3.3 标准输入/输出 用户在程序运行过程中从外界传递数据到程序中(此为输入数输入数据据),并将处理结果传递到程序外部,如显示到屏幕上或写出到文件中(此为输出数据输出数据)。什么是控制台什么是控制台 “控制台”
18、(Console)就是由操作系统提供的一个字符界面窗口,用于实现系统与用户的交互接收用户输入的数据并显示输出结果。在控制台中运行的程序被称为控制台应用程序,也称字符界面应用程序。读取控制台输入读取控制台输入第19页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院3.3 标准输入/输出 java.util.Scanner类的功能并不仅限于控制台输入数据的读取,它的对象还可以关联到字符串、文件或其他的数据源。构造方法public Scanner(InputStream source)例如,Scann
19、er sc=new Scanner(System.in);public Sting next()读取下一个单词,以空格符或换行符作为分隔单词的标记。例如,String name=sc.next();public int nextInt()读取一个整数,如果输入的下一个单词不能解析为有效的整数(例如包含汉字等非数值字符),则出错。第20页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院3.3 标准输入/输出public double nextDouble()读取一个双精度浮点数,如果输入的下一个单
20、词不能解析为有效的浮点数,则出错。public Boolean nextBoolean()读取一个布尔值,如果输入的下一个单词不能解析为有效的boolean值(true或false),则出错。例3.26 Scanner类的使用。import语句:导入java.util包中定义的Scanner类。String name=s.nextLine();int age=s.nextInt();double salary=s.nextDouble();第21页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院
21、上机实践2写出下面程序的输出结果,并上机验证。public class Example1 public static void main(String args)int a=20,b=50,c=100,d;a%=9;b/=7;c%=b;d=a+b+c;System.out.println(a=+a);System.out.println(b=+b);System.out.println(c=+c);System.out.println(d=+d);第22页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业
22、技术学院上机实践1请仔细阅读下面的程序段,说明以“*”标识的语句的含义,分析哪些语句不能得到正确结果,将程序补充完整上机验证。byte byte_n1;short short_n1=10;*short short_n2;int int_n1=3000000;*int int_n2,int_n3;long long_n1=400;*long long_n2,long_n3;byte_n1=short_n1;*byte_n1=(byte)short_n1;*第23页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软
23、件职业技术学院上机实践short_n2=(short)int_n1;*int_n2=int_n1*short_n1;*int_n3=long_n1*short_n1;*long_n2=int_n1*2000;*long_n3=int_n1*2000L;*第24页,本讲稿共26页http:/221.192.237.88:82http:/221.192.237.88:82河北软件职业技术学院河北软件职业技术学院上机实践3编写一个应用程序,读取用户输入的三个非0数据,判断并输出这三个值是否能构成一个三角形的三条边。4用switch语句编写一个完成两个整数四则算术运行的程序。5编写应用程序,求12-22+32-42+972-982+992-1002的值。6编写应用程序求1!+2!+20!的和并显示。同时输出1!、2!、3!的结果。第25页,本讲稿共26页第26页,本讲稿共26页