JAVA程序员培训定制课程c0课件4.ppt

上传人:小飞机 文档编号:1285828 上传时间:2022-11-04 格式:PPT 页数:46 大小:204.10KB
返回 下载 相关 举报
JAVA程序员培训定制课程c0课件4.ppt_第1页
第1页 / 共46页
JAVA程序员培训定制课程c0课件4.ppt_第2页
第2页 / 共46页
JAVA程序员培训定制课程c0课件4.ppt_第3页
第3页 / 共46页
JAVA程序员培训定制课程c0课件4.ppt_第4页
第4页 / 共46页
JAVA程序员培训定制课程c0课件4.ppt_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《JAVA程序员培训定制课程c0课件4.ppt》由会员分享,可在线阅读,更多相关《JAVA程序员培训定制课程c0课件4.ppt(46页珍藏版)》请在三一办公上搜索。

1、运算符、表达式和流程控制,第四章,1,运算符、表达式和流程控制 第四章 1,本章内容,变量及其作用域Java运算符表达式分支语句if-else语句switch语句循环语句for 循环while 循环do-while 循环特殊的循环控制语句,2,本章内容变量及其作用域2,Java变量分类,变量用于记录数值可变的数据按所属的数据类型划分:基本数据类型变量引用数据类型变量按被声明的位置划分:局部变量:方法或语句块内部定义的变量成员变量:方法外部、类的内部定义的变量,3,Java变量分类变量用于记录数值可变的数据3,局部变量声明和初始化,Java变量使用前必须先声明和初始化(赋初值)局部变量声明语法格

2、式 DataType varName1=value1,varName2=value2 变量声明和初始化举例:public void amethod()int i;int j = i+5 ; / 编译出错,变量i还未被初始化double d = 3.14; MyDate m;m = new MyDate(22,7,1964);System.out.println(m.getYear();,4,局部变量声明和初始化Java变量使用前必须先声明和初始化(赋,局部变量声明和初始化示例,public class TestLocal public static void main(String args)

3、 int x;if (args0 != null) x = 7;int y = x;,5,局部变量声明和初始化示例public class TestL,成员变量声明和初始化,成员变量在类的定义中声明在创建对象的同时创建有关的成员变量成员变量创建后系统自动对其进行默认初始化显式初始化,6,成员变量声明和初始化成员变量在类的定义中声明6,成员变量声明和初始化示例,public class Book private String title;public String getTitle() return title;public static void main(String args) Book

4、b = new Book();String s = b.getTitle(); / Compiles and runsString t = s.toLowerCase(); / Runtime Exception!,7,成员变量声明和初始化示例public class Book,变量作用域,局部变量的作用域就是它所在的方法或语句块在程序调用方法(进入语句块)时,局部变量才被创建并可用,随方法(语句块)的退出,局部变量将被销毁成员变量依附于对象(局部变量)存在,具有与对象相同的生存期和作用域。,8,变量作用域局部变量的作用域就是它所在的方法或语句块8,变量作用域举例,public class T

5、est private int i=1;public void method1() int i=4, j=5;this.i = i + j;method2(7);public void method2(int i) int j=8;this.i = i + j;System.out.println(this.i);public static void main(String args) Test t = new Test();t.method1();,main,栈内存,t,this,i,j,method1,4,5,7,8,i,j,this,method2,Test对象,i,9,变量作用域举例p

6、ublic class Test main,Ex1,练习上页例程:Test.java,在各方法中添加输出语句显示Test对象属性i(this.i) 的值,分析程序执行流程并体会各变量的作用域。 /输出语句可采用:System.out.println(this.i);,10,Ex1练习上页例程:Test.java,在各方法中添加输出语,运算符,算术运算符: +,*,/,%,+,关系运算符: ,=,赋值运算符: = 扩展赋值运算符:+=,=,*=,/=字符串连接运算符: +,11,运算符算术运算符: +,*,/,%,+,11,等于运算符示例(1),class ComparePrimitives p

7、ublic static void main(String args) System.out.println(character a = a? + (a = a);System.out.println(character a = b? + (a = b);System.out.println(5 != 6? + (5 != 6);System.out.println(5.0 = 5L? + (5.0 = 5L);System.out.println(true = false? + (true = false); ,12,等于运算符示例(1)12,等于运算符示例(2),boolean b = f

8、alse; if (b = true) System.out.println(“b is true”); else System.out.println(“b is false”);,13,等于运算符示例(2)13,等于运算符示例(3),import java.awt.Button;class CompareReference public static void main(String args) Button a = new Button(Exit);Button b = new Button(Exit);Button c = a;System.out.println(Is referen

9、ce a = b? + (a = b);System.out.println(Is reference a = c? + (a = c);,14,等于运算符示例(3) import java.aw,增量、减量运算符示例(1),class MathTest static int players = 0; public static void main (String args) System.out.println(players online: + players+); System.out.println(The value of players is + players); System.

10、out.println(The value of players is now + +players); ,15,增量、减量运算符示例(1) class MathTes,增量、减量运算符示例(2),int x = 2;int y = 3;if (y = x+) | (x +y) System.out.println(x = + x + y = + y);,16,增量、减量运算符示例(2)int x = 2;16,逻辑运算符(1),逻辑运算符功能!- 逻辑非& - 逻辑与 | - 逻辑或 - 逻辑异或&- 短路与 | - 短路或逻辑运算符功能说明:,17,逻辑运算符(1)逻辑运算符功能ab!aa

11、&ba|baba&,逻辑运算符(2),短路逻辑运算符应用,18,逻辑运算符(2)短路逻辑运算符应用18,逻辑运算符(3),class TestOR public static void main (String args) if (isItSmall(3) | (isItSmall(7) System.out.println(Result is true);if (isItSmall(6) | (isItSmall(9) System.out.println(Result is true); public static boolean isItSmall(int i) if (i 5) Sys

12、tem.out.println(i less than 5);return true; else System.out.println(i greater than 5);return false;,19,逻辑运算符(3)class TestOR 19,位运算符,位运算符功能 - 取反& - 按位与 | - 按位或 - 按位异或位运算符功能说明:,&,|,20,位运算符位运算符功能0100111110110000011,移位运算符(1),左移ab; 将二进制形式的a逐位右移b位,最高位空出的b位补原来的符号位;无符号右移ab;将二进制形式的a逐位右移b位,最高位空出的b位补0。,21,移位运算

13、符(1)左移21,移位运算符(2),移位运算符性质适用数据类型:byte、short、char、int、long,对低于int型的操作数将先自动转换为int型再移位 对于int型整数移位ab,系统先将b对32取模,得到的结果才是真正移位的位数对于long型整数移位时ab ,则是先将移位位数b对64取模,22,移位运算符(2)移位运算符性质22,移位运算符(3),移位运算符应用举例,23,移位运算符(3)移位运算符应用举例2227 = 000000,赋值运算符(1),赋值运算符=当=两侧的数据类型不一致时,可以适用默认类型转换或强制类型转换原则进行处理 long l = 100; int i =

14、 (int)l; 特例:可以将整型常量直接赋值给byte, short, char等类型变量,而不需要进行强制类型转换,只要不超出其表数范围 byte b = 12;/合法 byte b = 4096;/非法,24,赋值运算符(1)赋值运算符=24,赋值运算符(2),当把一个引用变量赋给另一个引用变量是,两个变量引用了同一个对象。(String除外)示例:import java.awt.Dimension;class ReferenceTest public static void main (String args) Dimension a = new Dimension(5,10);Sys

15、tem.out.println(a.height = + a.height);Dimension b = a;b.height = 30;System.out.println(a.height = + a.height +after change to b);,25,赋值运算符(2)当把一个引用变量赋给另一个引用变量是,25,赋值运算符(3),扩展赋值运算符,26,赋值运算符(3)扩展赋值运算符运算符 用法举例 等效的表达式,字符串连接运算符 +,+ 除用于算术加法运算外,还可用于对字符串进行连接操作int i = 300 +5;String s = hello, + world!;+运算符两

16、侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接String a = String;int b = 3;int c = 7;System.out.println(a + b + c);System.out.println(a + (b + c));,27,字符串连接运算符 + 除用于算术加法运算外,还可用于对,表达式,表达式是符合一定语法规则的运算符和操作数的序列 a5.0 + a(a-b)*c-4i30 & i%10!=0 表达式的类型和值对表达式中操作数进行运算得到的结果称为表达式的值 表达式的值的数据类型即为表达式的类型 表达式的运算

17、顺序首先应按照运算符的优先级从高到低的顺序进行 优先级相同的运算符按照事先约定的结合方向进行,28,表达式表达式是符合一定语法规则的运算符和操作数的序列 28,运算符优先级,29,运算符优先级Separator. ( ) ,Ex2,练习下面的程序,排除编译错误,分析其输出结果:public class MyTestpublic static void main(String args)int a=10int i = a;int j = a3; int k = a32;System.out.println(“i=” + i );System.out.println(j= + j );System

18、.out.println(k= +k );System.out.println(m= +m );,30,Ex2练习下面的程序,排除编译错误,分析其输出30,分支语句,分支语句实现程序流程控制的功能 ,即根据一定的条件有选择地执行或跳过特定的语句Java分支语句分类if-else 语句switch 语句,31,分支语句分支语句实现程序流程控制的功能 ,即根据一定的条件有,if-else语句语法格式,if(boolean类型表达式) 语句或语句块;if(boolean类型表达式) 语句或语句块; else if(boolean类型表达式) 语句或语句块; else 语句或语句块;,32,if-el

19、se语句语法格式if(boolean类型表达式,if-else语句应用举例,ublic class Testpublic static void main(String args)Test t = new Test();t.test(75);public void test(int age)if (age250) System.out.println(是个妖怪!); else System.out.println(此人芳龄 + age + 马马乎乎啦!);,33,if-else语句应用举例33,switch语句语法格式,switch(exp)case const1:statement1;bre

20、ak;case const2:statement2;break; case constN:statementN;break;default:statement_dafault;break;,34,switch语句语法格式switch(exp)34,switch语句应用举例,public class Test public static void main(String args)int i = 1;switch (i) case 0:System.out.println(zero);break; case 1:System.out.println(one);break; case 2:Syst

21、em.out.println(two);break; default:System.out.println(default);break; ,35,switch语句应用举例public class Test,switch语句有关规则,表达式expr的返回值必须是下述几种类型之一:int, byte, char, short;case子句中的值const 必须是常量,且所有case子句中的值应是不同的;default子句是任选的;break语句用来在执行完一个case分支后使程序跳出switch语句块;,36,switch语句有关规则36,Ex3,参照M04-24,26页的例子,练习使用if-e

22、lse、switch分支语句,注意体会break/default语句的用法;,37,Ex3参照M04-24,26页的例子,练习使用if-else,循环语句,循环语句功能在循环条件满足的情况下,反复执行特定代码循环语句的四个组成部分初始化部分(init_statement)循环条件部分(test_exp) 循环体部分(body_statement) 迭代部分(alter_statement) 循环语句分类for 循环while 循环do/while 循环,38,循环语句循环语句功能38,for 循环语句,语法格式 for (init_statement; test_exp; alter_stat

23、ement) body_statement应用举例public class ForLoop public static void main(String args) int result = 0; for(int i=1; i=100; i+) result += i; System.out.println(result= + result);,39,for 循环语句语法格式39,while 循环语句,语法格式 init_statementwhile( test_exp) body_statement;alter_statement;应用举例public class WhileLoop pub

24、lic static void main(String args) int result = 0;int i=1;while(i=100) result += i; i+;System.out.println(result= + result); ,40,while 循环语句语法格式40,do/while 循环语句,语法格式 init_statementdo body_statement; alter_statement;while( test_exp); 应用举例public class WhileLoop public static void main(String args) int r

25、esult = 0, int i=1;do result += i; i+;while(i=100);System.out.println(result= + result); ,41,do/while 循环语句语法格式41,特殊流程控制语句,break 语句break语句用于终止某个语句块的执行 break; break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块 label1: label2: label3: break label2; ,42,特殊流程控制语句break 语句42,特殊流程控制语句,break 语句用法举例 public class TestBr

26、eakpublic static void main(String args) for(int i = 0; i10; i+) if(i=3) break; System.out.println( i = + i); System.out.println(Game Over!);,43,特殊流程控制语句break 语句用法举例43,特殊流程控制语句,continue 语句continue语句用于跳过某个循环语句块的一次执行 continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环 continue语句用法举例1public class ContinueTest

27、public static void main(String args) for (int i = 0; i 100; i+) if (i%10=0) continue; System.out.println(i); ,44,特殊流程控制语句continue 语句44,特殊流程控制语句,ublic class PrimeNumberpublic static void main(String args) int n = 0; outer:for(int i=101;i200;i+=2) /外层循环 for(int j=2; ji;j+) /内层循环 if(i%j=0) continue out

28、er; /不能使用 break ,为什么? System.out.print( + i); n+; if(n6 ) continue; System.out.println(); /输出六个数据后换行 n = 0; ,continue语句用法举例2,45,特殊流程控制语句public class PrimeNumb,Ex4,编写程序,用一个for循环计算1+2+3+ 100的值,并输出计算结果。使用其它循环-while, do while 分别实现上述任务。编写程序,采用适当的循环和流控制语句实现下述功能:打印输出0200之间能被7整除但不能被4整除的所有整数;要求每行显示6个数据;练习目的:体会和巩固循环语句、分支语句、流控制语句、表达式的计算次序、逻辑运算符的用法;,46,Ex4编写程序,用一个for循环计算1+2+3+ 10,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号