《Java2实用教程课件(第3版第3章运算符、表达式和语句).ppt》由会员分享,可在线阅读,更多相关《Java2实用教程课件(第3版第3章运算符、表达式和语句).ppt(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第章运算符、表达式和语句第章运算符、表达式和语句n3.1 运算符与表达式运算符与表达式n3.2 语句概述语句概述n3.3 控制语句控制语句n3.4 循环语句循环语句n3.5 break和和continue语句语句 3.1 运算符与表达式运算符与表达式nJava 提供了丰富的运算符:q算术运算符q关系运算符符q逻辑运算符q位运算符等1 算术运算符与表达式算术运算符与表达式 n用算术符号和括号连接起来的符合java语法规则的式子,称为算术表达式,如 x+2*y-30+3*(y+5)。n加减运算符:+,-,加减运算符的结合方向是从左到右。,加减运算符的优先级是4级。n乘,除和求余运算符:*,/,%,
2、运算符的结合方向是从左到右.乘除运算符的操作元是整型或浮点型数据。*,/,%运算符的优先级是3级。自增,自减运算符:+,-n自增、自减运算符是单目运算符,可以放在操作元之前,也可以放在操作元之后。操作元必须是一个整型或浮点型变量。作用是使变量的值增1或减1n+x(-x)表示在使用x之前,先使x的值加(减)1。nx+(x-)表示在使用x之后,使x的值加(减)1。3算术混合运算的精度 精度从“底”到“高”排列的顺序是:byte short int long float doubleJava将按运算符两边的操作元的最高精度保留结果的精度,例如:5/2的结果是2,要想得到2.5,必须写成5.0/2或5
3、.0f/2。char型数据和整型数据运算结果的精度是int。例如:byte x=7;那么 B+x;的结果是int型,因此下列写法是不正确的,char ch=B+x;应当写成:char ch=(char)(B+x);4关系运算符与关系表达式n关系运算符:,=,8,(x+y)80。逻辑运算符与逻辑表达式 n逻辑运算符包括:&,|,!。其中&、|为双目运算符,实现逻辑与、逻辑或;!为单目运算符,实现逻辑非。逻辑运算符的操作元必须是boolean型数据,逻辑运算符可以用来连接关系表达式。例如,28&92的结果为false,28|92的结果为true。6赋值运算符与赋值表达式n赋值运算符:=。n赋值运算
4、符是双目运算符,左面的操作元必须是变量,不能是常量或表达式。设x是一个整型变量,y是一个boolean型变量,x=20和y=true都是正确的赋值表达式,赋值运算符的优先级较低,是14级,结合方向右到左。赋值表达式的值就是“=”左面变量的值。注意不要将赋值运算符“=”与等号运算符“=”混淆。8instanceof 运算符n 该运算符是双目运算符,左面的操作元是一个对象;右面是一个类。当左面的对象是右面的类创建的对象时,该运算符运算的结果是true,否则是false。其他操作符n唯一的三目运算符(实现if-else 效果)qBoolean表达式?value0:value1n逗号表达式(,)n字符
5、串连接运算符+qSystem.out.println(sString+x+y+z);n强制类型转换 qlong l2=(long)200q类型提升-2+3.0fn没有 sizeof 运算符9运算符综述nJava的表达式就是用运算符连接起来的符合Java规则的式子。n运算符的优先级决定了表达式中运算执行的先后顺序。例如,xy&!z相当于(xy)&(!z),没有必要去记忆运算符号的优先级别,在编写程序时可尽量的使用括号()运算符号来实现你想要的运算次序,以免产生难以阅读或含糊不清的计算顺序。n运算符的结合性决定了并列相同级别的运算符的先后顺序,例如,加减的结合性是从左到右,8-5+3相当于(8-5
6、)+3。逻辑否运算符!的结合性是右到左,!x 相当于!(!x)。运算符访问优先级操作对象运算符Unary+-+-算术运算符*/%+-关系运算符=B?X:Y赋值运算符=(*=)3.2 语句概述语句概述nJava里的语句可分为以下五类:n1方法调用语句n2表达式语句 n3复合语句n4控制语句n5package 语句和 import语句3.3 控制语句控制语句 nJava 语言的控制语句有2种类型,即条件语句,和switch开关语句。1条件控制语句nif 语句的一般形式:if(表达式)若干语句;nif-else 语句的一般形式:if(表达式)若干语句;else 若干语句;2 switch开关语句 n
7、switch 语句是多分支的开关语句,它的一般格式定义如下(其中break语句是可选的):switch(表达式)case 常量值1:若干个语句 break;case 常量值2:若干个语句 break;.case 常量值n:若干个语句 break;default:若干语句3.4 循环语句循环语句n1for循环语句nfor 语句是java程序设计中最有用的循环语句之一,for语句的格式如下:for(表达式1;表达式2;表达式3)若干语句 n2while 循环一般格式:while(表达式)若干语句 n3do-while循环一般格式:do 若干语句 while(表达式);3.5 break和和cont
8、inue语句语句nbreak和continue语句是指用关键break或continue加上分号构成的语句,例如:break;n在循环体中可以使用break语句和continue语句。在一个循环中,比如循环50次的循环语句中,如果在某次循环中执行了break语句,那么整个循环语句就结束。如果在某次循环中执行了continue语句,那么本次循环就结束,即不再执行本次循环中循环体中continue语句后面的语句,而转入进行下一次循环。Java类库-基本类库-1nMath类中常用的方法类方法参数类型结果类型 功能abs(a)int doubleint double 返回a的绝对值cos(a)doub
9、ledouble返回a的余弦,a是弧度。floor(a)doubleint 返回小于或等于a的最大整数max(a,b)int double int double返回 a、b中的最大值。min(a,b)int doubleint double返回a、b中的最小值。pow(a,b)doubledouble返回以a为底以b为指数的幂random()double返回一个0.0至1.0之间的随机数round(a)float doubleint返回a的四舍五入的int值sqrt(a)doubledouble返回a的平方根Java类库-基本类库-2n使用Math类方法的语法:Math.(参数)n使用PI和E
10、的语法:Math.PI Math.E 把下面的数学公式写成Java中的表达式:Math.sin(Math.PI)/(a*x)+Math.abs(Math.cos(Math.PI*x/2)2*Math.PI*Math.sqrt(1/g)V0*t+1/2.*g*Math.pow(t,2)Math.sqrt(p*(p-a)*(p-b)*(p-c)Java类库-基本类库-3基本数据类型:与基本数据类型对应的类:1.byte Byte 2.short Short 3.int Integer 4.long Long 5.float Float6.double Double7.char Character8
11、.boolean Boolean用这些类声明的是对象,而这些对象不仅具有值的属性同时具有各种方法。如:Integer I;String s1=“1024”,s2=“”;Double D;double d=6.8;int i;D=new Double(d);I=new Integer(512);s2=D.toString();d=Double.valueOf(s1).doubleValue();i=Integer.ParseInt(s1);Double对象double型数值创建对象并赋值把字符串转换成数值Java类库-基本类库-4nString 是 java.lang 包中的一个类.n因为 St
12、ring 是一个类,在Java 语言中处理字符串时,我们需要创建 String 的一个实例。像使用其他对象一样,需要定义和创建 String 类的实例.例如,String name1;name1=new String(“Latte”);但是我们通常采用一种简单的表示方法,将String对象看作基本数据来使用String对象。例如,String name1;name1=“Latte”;两个语句是等价的Java类库-基本类库-5 int javaCount=0;boolean repeat=true;String word;while(repeat)word=inputBox.getString(
13、Next word:);if(word.equals(STOP)repeat=false;else if(word.equalsIgnoreCase(Java)javaCount+;连续的读单词并且统计在输入过程中出现了多少次单词 Java,这里忽略大小写注意:这里是如何比较的,我们不能使用=操作符。Java类库-基本类库-6方法含义length获取字符串的长度 int n=str1.length();charAt获取单个字符 char x=str1.charAt(0);compareTo比较两个字符串 pareTo(str2)substring从一个字符串中抽取一个字串 str1.subst
14、ring(1,4)trim去掉头部和尾部的空格 str1.trim()valueOf将给定的基本数据类型转换成字符串String.valueOf(123.4565)startsWith如果字符串以指定的字串开始,则返回真str1.startsWith(str2)endsWith如果字符串以指定的字串结束,则返回真str1.endsWith(str2)String 常用方法:Java类库-基本类库-7nStringBuffer 示例char letter;String inSentence =inputBox.getString(Enter a sentence:);StringBuffer t
15、empStringBuffer =new StringBuffer(inSentence);int numberOfCharacters=tempStringBuffer.length();for(int index=0;index numberOfCharacters;index+)letter=tempStringBuffer.charAt(index);if(letter=a|letter=A|letter=e|letter=E|letter=i|letter=I|letter=o|letter=O|letter=u|letter=U )tempStringBuffer.setCharA
16、t(index,X);messageBox.show(tempStringBuffer);Java类库-基本类库-8方法含义length获取字符串的长度 int n=str1.length();charAt获取单个字符 char x=str1.charAt(0);append 附加新的串,可以是任意类型,自动转换 str1.append(str2)Str1,appedn(10);insert插入新的串,可以是任意的类型,自动转换 str1.insert(5,”abc”);Str1.insert(4,10);setCharAt设置新的单个字符 str1.setCharAt(3,X);revers
17、e将字符串反序 String.reverse();setLength设置字符串的长度str1.setLength(100)toString得到对应的字符串常量 s=str1.toString()StringBuffer 常用方法:Java类库-StringTokenizer(特征化)StringTokenizer(String str)初始化StringTokenizer对象对象StringTokenizer(String str,String delim)初始化StringTokenizer对象,对象,delim指定特定的分割符int countTokens int countTokens()计算 nextToken 方法可以调用的次数boolean has boolean has MoreTokensMoreTokens()是否还包含特征化的串String nextTokenString nextToken()返回下一个特征串作业n作业:P33 T1、3、4、5