程序的流程控制课件.ppt

上传人:石*** 文档编号:50886022 上传时间:2022-10-16 格式:PPT 页数:70 大小:6.49MB
返回 下载 相关 举报
程序的流程控制课件.ppt_第1页
第1页 / 共70页
程序的流程控制课件.ppt_第2页
第2页 / 共70页
点击查看更多>>
资源描述

《程序的流程控制课件.ppt》由会员分享,可在线阅读,更多相关《程序的流程控制课件.ppt(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、关于程序的流程控关于程序的流程控制制1现在学习的是第1页,共70页2教学目标教学目标v熟练掌握熟练掌握JavaJava语言中的流程控制结构。语言中的流程控制结构。v掌握掌握JavaJava中选择结构的基本原理及使用方法。中选择结构的基本原理及使用方法。v掌握掌握JavaJava中循环结构的基本原理及使用方法。中循环结构的基本原理及使用方法。v熟练掌握熟练掌握JavaJava中数组的使用方法及能够熟练中数组的使用方法及能够熟练应用。应用。现在学习的是第2页,共70页3教学重点教学重点v流程控制构成了编程语言的逻辑流程控制构成了编程语言的逻辑,而对这些控制语而对这些控制语句的灵活运用又能有助于编程

2、逻辑的清晰整理。句的灵活运用又能有助于编程逻辑的清晰整理。v本章首先介绍了本章首先介绍了JavaJava流程控制结构中的选择结构流程控制结构中的选择结构和循环结构,最后,介绍了跳转语句的基本原理。和循环结构,最后,介绍了跳转语句的基本原理。掌握数组的声明,生成和初始化方法。掌握数组的声明,生成和初始化方法。熟练掌握数组的使用,对于多维数据,要求学生熟练掌握数组的使用,对于多维数据,要求学生主要掌握二维数组的声明、生成、初始化、及使主要掌握二维数组的声明、生成、初始化、及使用方法。用方法。现在学习的是第3页,共70页4例例1 1:打印一个打印一个打印一个打印一个3x43x43x43x4的矩阵的矩

3、阵class DrawRect public static void main(String args)System.out.println(“*);System.out.println(“*);System.out.println(“*);3.1 3.1 程序的流程控制程序的流程控制 现在学习的是第4页,共70页5例例2 2:上一个例子的变形上一个例子的变形1.class DrawRect 2.3.public static void main(String args)4.5.System.out.print(“*);6.System.out.print(“*);7.System.out.p

4、rint(“*);8.System.out.println(“*n);9.System.out.print(“*);10.System.out.print(“*);11.System.out.print(“*);12.System.out.println(“*n);13.System.out.print(“*);14.System.out.print(“*);15.System.out.print(“*);16.System.out.println(“*);17.18.问题:如何作出决策,提高程序的执行效率?问题:如何作出决策,提高程序的执行效率?现在学习的是第5页,共70页6分析问题找出最佳

5、解决方案分析问题找出最佳解决方案分析问题找出最佳解决方案分析问题找出最佳解决方案v以上两种方法是初学者最容易想到的,但做了很多以上两种方法是初学者最容易想到的,但做了很多重复的工作,会使程序变得很繁琐,结构也不够清重复的工作,会使程序变得很繁琐,结构也不够清晰。在工作量少的时候似乎没那么明显,但当需要晰。在工作量少的时候似乎没那么明显,但当需要打印的矩阵比较大的时候就会显现出来(如:打印打印的矩阵比较大的时候就会显现出来(如:打印一个一个100 x60的矩阵)。的矩阵)。v想解决这个问题我们可以通过循环来解决,讲到循想解决这个问题我们可以通过循环来解决,讲到循环就要先介绍一下程序的结构化设计。

6、环就要先介绍一下程序的结构化设计。现在学习的是第6页,共70页7程序设计的三种结构程序设计的三种结构程序设计的三种结构程序设计的三种结构v顺序结构顺序结构v循环结构循环结构v选择结构选择结构循环结构与选择结构所使用的语句又叫作循环结构与选择结构所使用的语句又叫作流程流程控制语句控制语句,作用是改变程序的执行顺序。,作用是改变程序的执行顺序。现在学习的是第7页,共70页8vJava的程序控制语句分为以下几类:的程序控制语句分为以下几类:选择、循环选择、循环和跳转。和跳转。v块块(即复合语句)是指由一对花括号括起来的若(即复合语句)是指由一对花括号括起来的若干条简单的干条简单的Java语句。语句。

7、v块定义着变量的作用域(块定义着变量的作用域(scope)。一个块可以)。一个块可以嵌套在另一个块中。嵌套在另一个块中。3.1 3.1 程序的流程控制程序的流程控制现在学习的是第8页,共70页93.1 3.1 程序的流程控制程序的流程控制public static void main(String args)int a;.int b;./变量变量b的作用域只在块内,到块外便失的作用域只在块内,到块外便失去作用。去作用。.现在学习的是第9页,共70页103.2 3.2 选择结构选择结构vvif if语句语句语句语句if(expression)语句语句1;语句语句2;练习:练习:NumberTes

8、t.java条件判断条件判断执行语句执行语句或代码块或代码块真真假假现在学习的是第10页,共70页113.2 选择结构vif语句语句expression=true语句语句2语句块语句块语句块:用花括号括起来的语句。if(expression)statment1;statment2;语句2;左侧的语句也以下语句有什么不同?if(expression)statment1;statment2;语句2;现在学习的是第11页,共70页123.2 3.2 选择结构选择结构v提示提示:合理采用缩进格式书写代码合理采用缩进格式书写代码坚持用左右大括号将坚持用左右大括号将if条件括条件括起来的习惯,即使一条语句

9、也括。起来的习惯,即使一条语句也括。velse子句子句if(expression)statement1;statement1;elseelse statement2;next_statement;条条件件判判断断执行语句执行语句2 2或代码块或代码块2 2假假执行语句执行语句1 1或代码块或代码块1 1真真现在学习的是第12页,共70页133.2 选择结构vif语句的嵌套形式语句的嵌套形式if()if();else ;else if();else ;z若条件若条件1成立成立,则执行哪一组则执行哪一组IF语句语句?z若条件若条件1不成立不成立,则执行哪一组则执行哪一组IF语句语句?现在学习的是第

10、13页,共70页143.2 3.2 选择结构选择结构vif语句的嵌套形式语句的嵌套形式 if();else if();else if().else;判判断断条条件件1 1执行语句执行语句1 1或代码块或代码块1 1判判断断条条件件2 2执行语句执行语句2 2或代码块或代码块2 2.判断条件判断条件N N执行语句执行语句N N或代码块或代码块N N执行语句执行语句N+1N+1或代码块或代码块N+1N+1真真真真真真假假假假假假假假现在学习的是第14页,共70页153.2 3.2 选择结构选择结构vif语句的嵌套形式语句的嵌套形式 if();else if();else if().else;z什么

11、情况下会执行到语句什么情况下会执行到语句2,什么情况下会执行到语句什么情况下会执行到语句n?z语句语句1与语句与语句2等是否可以都执行等是否可以都执行?else总是和距总是和距它最近的它最近的if配对配对现在学习的是第15页,共70页16zswitch语句又称多分支选择语句多分支选择语句z与if-else一样,是Java语言的条件选择语句,if 语句是判断条件的值,再从两个程序块中选择其中一块执行,只能出现两个分支,而switch语句可存在多个分支。z处理多种分支情况时,用switch语句代替if语句可以简化程序,使程序结构清晰明了,可读性增强。3.2.3 switch3.2.3 switch

12、语句语句现在学习的是第16页,共70页17switch语句的一般形式为:语句的一般形式为:switch()case:;break;case:;break;.case:;break;default:;产生的结果值可以是产生的结果值可以是char型型,byte型型,short型型,int型或枚举型或枚举型。型。不加不加break语句,执行流语句,执行流程如何?程如何?若条件值与若条件值与case值均不匹配,而又没有值均不匹配,而又没有此句,执行流程如何?此句,执行流程如何?3.2.3 switch3.2.3 switch语句语句现在学习的是第17页,共70页18 switch()case:case

13、:case:;break;.case:;break;default:;执行流程如何?执行流程如何?实例:实例:SwitchSample.javaSwitchSample.java3.2.3 switch3.2.3 switch语句语句现在学习的是第18页,共70页19vfor语句的一般形式为:语句的一般形式为:for(;)v其中:其中:初始化部分设置控制循环的变量的初值。初始化部分设置控制循环的变量的初值。条件判断部分可以是任何布尔表达式。条件判断部分可以是任何布尔表达式。迭代因子控制循环变量递增或递减。迭代因子控制循环变量递增或递减。3.3.1 3.3.1 循环循环-for-for现在学习的

14、是第19页,共70页20vfor语句的执行过程为:语句的执行过程为:执行初始化。执行初始化。判断条件的返回值。如果为真执行循环体语判断条件的返回值。如果为真执行循环体语句;如果为假就跳出句;如果为假就跳出for语句循环。语句循环。执行迭代因子,为下次循环做准备。执行迭代因子,为下次循环做准备。返回返回。vfor语句是先执行语句是先执行,即先判断后执行,如果不,即先判断后执行,如果不满足判断条件,满足判断条件,循环体可能一次都不能执行。循环体可能一次都不能执行。3.3.1 3.3.1 循环循环-for-for现在学习的是第20页,共70页21forfor循环流程图实例:实例:ForTick.ja

15、va doubleFor.java前续代码及循环控前续代码及循环控制变量的定义制变量的定义循环体中的程序循环体中的程序循环控制条件循环控制条件TrueTrueFalseFalse后续代码后续代码步长变量的改变步长变量的改变现在学习的是第21页,共70页流程图进程进程判断判断输入输输入输出出起始符起始符NYYN开始开始结束结束int i=0i3?i+i 4?j+int j=0打印打印*号号打印换行打印换行符号符号现在学习的是第22页,共70页23zcollection-based for循环循环z采用采用for语句的基本格式语句的基本格式z在在for循环语句的圆括号之间的第一个控制表达循环语句的

16、圆括号之间的第一个控制表达式中是循环变量,然后以式中是循环变量,然后以冒号冒号分隔,第二个控制分隔,第二个控制表达式,确定了第一个控制表达式中声明的变量的表达式,确定了第一个控制表达式中声明的变量的取值来源的集合。取值来源的集合。程序:程序:AverageGrade.java3.3.1 3.3.1 循环循环-for-for现在学习的是第23页,共70页24while语句的一般形式为:语句的一般形式为:while();实例:实例:NumAdd.java3.3.3 3.3.3 循环循环-while-while终止条件?终止条件?执行循环体执行循环体假假初始化初始化执行步长部分执行步长部分真真现在学

17、习的是第24页,共70页25vwhile语句的执行过程为:语句的执行过程为:初始化,为循环设置初始值。初始化,为循环设置初始值。判断条件表达式的值,如果为真,就执行循环体语判断条件表达式的值,如果为真,就执行循环体语句;如果条件表达式的值为假,就跳出句;如果条件表达式的值为假,就跳出while语句。语句。执行迭代部分,为下次循环做准备。执行迭代部分,为下次循环做准备。返回返回。vwhile语句是先执行语句是先执行,即先判断后执行,如果不满足判断条件,循,即先判断后执行,如果不满足判断条件,循环体可能一次都不能执行。环体可能一次都不能执行。注意,在循环体中应该有使循环趋于注意,在循环体中应该有使

18、循环趋于结束的语句,否则循环将永远进行下去,形成死循环。结束的语句,否则循环将永远进行下去,形成死循环。3.3.3 3.3.3 循环循环-while-while现在学习的是第25页,共70页26whilewhile循环循环的流程图的流程图前续代码及循环控前续代码及循环控制变量的定义制变量的定义循环体中的程序循环体中的程序循环控制条件循环控制条件TrueFalse后续代码后续代码实例:实例:AverageGrade2.java现在学习的是第26页,共70页27 for for循环与循环与whilewhile循环的比较循环的比较vfor循环比循环比while循环结构清晰。循环结构清晰。1.for循

19、环的循环控制变量的定义、初始化,选换循环的循环控制变量的定义、初始化,选换结束的条件,步长变量的控制都在一条语句中结束的条件,步长变量的控制都在一条语句中实现。实现。2.while循环的循环控制变量是在循环之前定义的,循环的循环控制变量是在循环之前定义的,循环控制条件与循环控制条件与for相同,而步长变量是在循环相同,而步长变量是在循环体内部修改的。体内部修改的。v有时候用有时候用while实现会方便很多。例如在程序中将在实现会方便很多。例如在程序中将在110之间产生一个随机数,当产生的数字为之间产生一个随机数,当产生的数字为7的时候的时候打印一个提示语句并结束程序,否则继续执行直到产打印一个

20、提示语句并结束程序,否则继续执行直到产生的数字为生的数字为7。现在学习的是第27页,共70页28zwhile语句先判断后执行语句先判断后执行,while语句为语句为“当型当型“循环循环zdo-while语句先执行后判断,循环体至少被执语句先执行后判断,循环体至少被执行一次行一次,称称do-while语句为语句为”直到型直到型“循环。循环。3.3.5 3.3.5 循环循环-do-while-do-while现在学习的是第28页,共70页29do-while语句的一般形式为语句的一般形式为:do ;while();注意:这里注意:这里while()后面有一个()后面有一个“;”3.3.5 3.3.

21、5 循环循环-do-while-do-while终止条件?终止条件?执行循环体执行循环体假假初始化初始化执行步长部分执行步长部分真真现在学习的是第29页,共70页30vdo-while语句的执行过程为:语句的执行过程为:初始化,为循环设置初始值。初始化,为循环设置初始值。执行循环体语句。执行循环体语句。执行跌代部分,为下次循环做准备。执行跌代部分,为下次循环做准备。判断条件表达式的值,如果为真,就返回判断条件表达式的值,如果为真,就返回;如果条件表达式的值为假,就跳出如果条件表达式的值为假,就跳出do-while语句。语句。vdo-while语句是先执行循环体,再判断,循环体语句是先执行循环体

22、,再判断,循环体至少被执行一次。同样,在循环体中应该有使循至少被执行一次。同样,在循环体中应该有使循环趋于结束的语句。环趋于结束的语句。3.3.5 3.3.5 3.3.5 3.3.5 循环循环循环循环-do-while-do-while-do-while-do-while现在学习的是第30页,共70页31do whiledo while循环循环流程图流程图程序见:程序见:IntTurn.java前续代码及循环控前续代码及循环控制变量的定义制变量的定义循环体中的程序循环体中的程序循环控制条件循环控制条件TrueTrueFalseFalse现在学习的是第31页,共70页32z嵌套循环:嵌套循环:用

23、户可以将任何一种循环嵌入到另一种循用户可以将任何一种循环嵌入到另一种循环中,并且可以进行任意多重的嵌套。环中,并且可以进行任意多重的嵌套。例题:计算从例题:计算从1开始到给定数值之间所有整数的乘积。开始到给定数值之间所有整数的乘积。程序见:程序见:Factorial.java3.3 3.3 循环循环现在学习的是第32页,共70页33z功能:功能:结束本循环,跳到循环语句之后的第一条语句结束本循环,跳到循环语句之后的第一条语句处执行。处执行。例题:例题:BreakLoop1.javaz带标号的带标号的break语句:语句:允许程序跳转至有标号的外允许程序跳转至有标号的外层块或循环之后的语句处继续

24、执行,而不管这些嵌层块或循环之后的语句处继续执行,而不管这些嵌套块有多少层。套块有多少层。程序见:程序见:BreakLoop2.java3.4 3.4 跳转语句跳转语句 -break-break现在学习的是第33页,共70页34z功能:结束本次循环,进入下一次循环,例如:功能:结束本次循环,进入下一次循环,例如:for(int i=1;i=limit;i+)if(i%3=0)continue;sum+=i;3.4.2 continue3.4.2 continue现在学习的是第34页,共70页35z功能:可以停止执行内循环,并且可以直接跳转至包含功能:可以停止执行内循环,并且可以直接跳转至包含本

25、循环的外循环的下一轮迭代的起始处继续执行。本循环的外循环的下一轮迭代的起始处继续执行。程序见:程序见:MultiList.java3.4.2 3.4.2 带标号的带标号的continuecontinue现在学习的是第35页,共70页3.5 3.5 数组数组问题的提出问题的提出 现有一班级共现有一班级共3030人,想要计算全班参加英人,想要计算全班参加英语考试的平均分数,应如何设计程序实现?语考试的平均分数,应如何设计程序实现?问题的分析问题的分析(1)(1)程序结构程序结构?顺序,选择,循环顺序,选择,循环(2)(2)数据结构数据结构?单变量,数组单变量,数组现在学习的是第36页,共70页数组

26、:是一个具有数组:是一个具有相同类型相同类型变量的指定的集合变量的指定的集合的对象。的对象。数组元素:数组中的每个变量,由数组名和一数组元素:数组中的每个变量,由数组名和一个个intint型的整数值表示。型的整数值表示。索引索引:数据名后的整数值,一般放在数组名数据名后的整数值,一般放在数组名后面的方括号中。后面的方括号中。注意注意:数组中第一个元素的索引值是数组中第一个元素的索引值是0 0。int age;int age;age0=18;数组名数组名数组名数组名索引索引索引索引数组类型数组类型数组类型数组类型3.5 3.5 数组数组现在学习的是第37页,共70页一、数组变量一、数组变量数组变

27、量数组变量和所和所引用的数组引用的数组是两个分离的实体。是两个分离的实体。为数组变量所分配的内存空间保存着对数组对象为数组变量所分配的内存空间保存着对数组对象的引用,而不是数组对象本身。的引用,而不是数组对象本身。数组对象本身是一个存在于内存其它位置的独数组对象本身是一个存在于内存其它位置的独特实体。特实体。引用对象的变量中存储的是引用。引用对象的变量中存储的是引用。引用记录着它所引用的对象的内存地址。引用记录着它所引用的对象的内存地址。现在学习的是第38页,共70页39v基本数据类型一维数组内存分配基本数据类型一维数组内存分配栈内存栈内存堆内存堆内存numnumc c0 00 00 0008

28、8:44000088:44000088:44000088:4400new int3new int3产产生的对象生的对象数组的内存分配图数组的内存分配图一、数组变量一、数组变量现在学习的是第39页,共70页40v基本数据类型一维数组内存分配基本数据类型一维数组内存分配栈内存栈内存堆内存堆内存numnumc c0 00 00 0nullnull0088:44000088:4400new int3new int3产产生的对象生的对象数组的内存分配图数组的内存分配图num=null;0088:44000088:4400一、数组变量一、数组变量现在学习的是第40页,共70页41堆内存堆内存student

29、snullStudent students;栈内存栈内存一、数组变量一、数组变量现在学习的是第41页,共70页42堆内存堆内存studentsc0088:44000088:4400new students3new students3产产生的对象生的对象nullnull Student students;students=new Student3;null栈内存栈内存一、数组变量一、数组变量现在学习的是第42页,共70页43堆内存堆内存studentsc0088:44000088:4400new students3new students3产产生的对象生的对象nullnullStudent st

30、udents;students=new Student3;students0=new Student(“lisi”,18);student0student0标识的标识的StudentStudent对象对象lisi180088:46600088:4660栈内存栈内存一、数组变量一、数组变量现在学习的是第43页,共70页二、数组定义二、数组定义声明一维数组的两种格式:声明一维数组的两种格式:n数组元素类型数组元素类型 数组名字数组名字;double anArray;n数组元素类型数组元素类型 数组名字;数组名字;double anArray;声明二维数组的两种格式:声明二维数组的两种格式:n数组元

31、素类型数组元素类型 数组名字数组名字 ;n数组元素类型数组元素类型 数组名字;数组名字;创建数组创建数组数组名字数组名字=new 数组元素的类型数组元素的类型数组元素的个数数组元素的个数注意:声明时不注意:声明时不能指定数组的大能指定数组的大小!小!现在学习的是第44页,共70页举例举例:int primes;primes=new int10;或或 int primes=new int10;注意数组的静态性:一旦创建就不能修改数组的长度!注意数组的静态性:一旦创建就不能修改数组的长度!二、数组定义二、数组定义现在学习的是第45页,共70页三、数组长度三、数组长度利用数组对象的数据成员利用数组对

32、象的数据成员length可引用该数组可引用该数组的长度,即该数组中所包含的元素个数。的长度,即该数组中所包含的元素个数。若有若有:double myArray=new double100;则可使用则可使用myArray.length来引用它的长度,即得来引用它的长度,即得到的数值为到的数值为100。现在学习的是第46页,共70页double anArray;anArray=new double3anArray:?length3012anArray:nullHere,the array isnot defined.Here,the array isdefined,but theelements

33、in the arrayare NOT defined.三、数组长度三、数组长度现在学习的是第47页,共70页四、访问数组元素四、访问数组元素访问数组元素访问数组元素:数组名数组名索引值索引值例如例如:对前面所声明的对前面所声明的primes数组,其第一个元数组,其第一个元素的引用是素的引用是primes0若索引值小于若索引值小于0或大于最后一个的索引值,系统或大于最后一个的索引值,系统都会抛出一个异常都会抛出一个异常(Exception)。抛出异常只是指示运行时错误的一抛出异常只是指示运行时错误的一种方式,不同种类的错误就有不同种方式,不同种类的错误就有不同类型的异常,当程序抛出异常时,类型

34、的异常,当程序抛出异常时,通常会被终止。通常会被终止。现在学习的是第48页,共70页vE has length 6;vE4 is 14;vIf i is 3,then Ei is-2;vAssign a value:E5=6.0Elength:6473-2146123450四、访问数组元素四、访问数组元素现在学习的是第49页,共70页五、数组变量的重用五、数组变量的重用Java语言允许语言允许类型相同类型相同,而,而长度不同长度不同的两个数组的两个数组互相赋值互相赋值。赋值的结果是两个数组名指向同一。赋值的结果是两个数组名指向同一数组。数组。例如例如:int primes=new int10;

35、primes=new int50;例如:例如:double dub=new int10;/illegal注意:注意:可以改变数组变量所引用的数组,但是不可以改变数组变量所引用的数组,但是不可以改变数组元素所存储的值的类型。可以改变数组元素所存储的值的类型。现在学习的是第50页,共70页数组赋值只是对引用的复制数组赋值只是对引用的复制B=Aresults in:ABNOT:AB03length203length203length2lHow can we make a copy of an array?五、数组变量的重用五、数组变量的重用现在学习的是第51页,共70页六、数组的初始化六、数组的初始

36、化定义数组时直接初始化定义数组时直接初始化:如如:int primes=1,2,3,4,5,6,7;/此数组为此数组为7个元素个元素注意:注意:z初始化数组时,必须给出所有元素的值初始化数组时,必须给出所有元素的值.z若只对数组的部分元素指定初值,可以对这部分数若只对数组的部分元素指定初值,可以对这部分数组元素单独赋值,其它未赋值元素默认为组元素单独赋值,其它未赋值元素默认为0。z例如:例如:int primes=new int100;primes0=1;或或 for(int i=0;iprimes.length;i)primesi=1;现在学习的是第52页,共70页使用实用方法初始化数组使用

37、实用方法初始化数组 import java.util.Arrays;Arrays.fill(primes,1);使用已有数组的引用来初始化数组变量使用已有数组的引用来初始化数组变量 long even=2L,4L,6L,8L;long value=even;分析:分析:创建了创建了_个数组变量个数组变量,创建了创建了_个数组个数组.解答:解答:两个数组变量都引用同一个数组,而且通过两个变两个数组变量都引用同一个数组,而且通过两个变量名都可以访问这个数组的元素。量名都可以访问这个数组的元素。六、数组的初始化六、数组的初始化现在学习的是第53页,共70页例如:对非基本数据类型例如:对非基本数据类型

38、MyDate dates;dates=new MyDate 3;dates 0=new MyDate(22,7,1964);dates 1=new MyDate(1,1,2000);dates 2=new MyDate(22,12,1964);或:或:MyDate dates=new MyDate(22,7,1964),new MyDate(1,1,2000),new MyDate(22,12,1964);六、数组的初始化六、数组的初始化现在学习的是第54页,共70页数组交换的方法数组交换的方法double input=new double100;double output=new doubl

39、e100;double temp;temp=input;input=output;output=temp;分析:分析:是交换数组地址还是数组内容?是交换数组地址还是数组内容?解答:解答:此种方法只是此种方法只是交换了数组在内存中的地址交换了数组在内存中的地址,没有移,没有移动任何数组元素。若要复制数组,则需定义同样大小的数组,动任何数组元素。若要复制数组,则需定义同样大小的数组,并把原数组中的元素逐个复制到新数组中。并把原数组中的元素逐个复制到新数组中。六、数组的初始化六、数组的初始化现在学习的是第55页,共70页03length2A=B is trueA=B is falseAB03leng

40、th203length2AB03length2l当两个数组之间进行比较和赋值的时候,只是两个数当两个数组之间进行比较和赋值的时候,只是两个数组的组的引用引用进行比较和赋值。(进行比较和赋值。(It is the references that are compared or assigned,not the arrays.)六、数组的初始化六、数组的初始化现在学习的是第56页,共70页七、数组的使用七、数组的使用 double samples=new double50;double average=0.0;for(int i=0;isamples.length;i+)samplesi=100.

41、0*Math.random();for(int i=0;isamples.length;i+)average+=samplesi;average/=samples.length;现在学习的是第57页,共70页八、多维数组八、多维数组z二维数组二维数组:根据两个索引值的变化,可以访问数组的根据两个索引值的变化,可以访问数组的行或列。行或列。z声明格式:声明格式:n类型说明符类型说明符 数组名数组名 ;n类型说明符类型说明符 数组名;数组名;z二维数组的初始化二维数组的初始化n直接指定初值直接指定初值n用用new操作符操作符现在学习的是第58页,共70页z先声明数组再初始化数组先声明数组再初始化数

42、组n数组名数组名=new 类型说明符类型说明符行数行数 ;n数组名数组名=new 类型说明符类型说明符行数行数 列数列数;z例:例:int arra ;/声明二维数组声明二维数组arra=new int34;/初始化二维数组初始化二维数组等价于:等价于:arra=new int3;arra0=new int4;arra1=new int4;arra2=new int4;arra=new int3 for(int i=0;i3;i+)arrai=new int4;八、多维数组八、多维数组现在学习的是第59页,共70页z定义二维数组也可以采用如下方式:定义二维数组也可以采用如下方式:float t

43、emperature;temperature=new float10365;例题:气象迷例题:气象迷 程序见程序见WeatherFan.javaint arr=new int 4;是否正确?是否正确?八、多维数组八、多维数组现在学习的是第60页,共70页z不同长度的嵌套数组不同长度的嵌套数组 在在Java中,创建嵌套数组时,其中的各个数组的长度中,创建嵌套数组时,其中的各个数组的长度可以不同,例如:可以不同,例如:float samples=new float6;则变量则变量samples引用了一个具有引用了一个具有6个元素的数组,其中个元素的数组,其中每个元素可以容纳一个对一维数组的引用,可

44、以单独定义这每个元素可以容纳一个对一维数组的引用,可以单独定义这些数组,例如:些数组,例如:samples2=new float3;samples5=new float10;八、多维数组八、多维数组现在学习的是第61页,共70页v二维数组的各子数组元素的个数可以不同。v例1:int arr1=3,-9,8,0,1,10,11,9,8;v例2:float mat=new float4;for(int i=0;imat.length;i+)mati=new floati+1;float vector2=mat1;0123matmat.length0010120123mat0mat1(vector2

45、)mat2mat3八、多维数组八、多维数组现在学习的是第62页,共70页z分析如下代码的功能:分析如下代码的功能:float samples=new float6;for(int i=0;isamples.length;i+)samplesi=new floati+1;for(int i=0;isamples.length;i+)for(int j=0;jsamplesi.length;j+)samplesij=99.0f;八、多维数组八、多维数组现在学习的是第63页,共70页z多维数组多维数组 long beans=new long51030;数组数组beans被定义为一个三维数组,也可以说

46、其具有被定义为一个三维数组,也可以说其具有5个元素,每个元素都保存了一个对二维数组的引用,个元素,每个元素都保存了一个对二维数组的引用,这些二维数组又可以互不相同。这些二维数组又可以互不相同。z多维数组的使用方法与二维数组相似。例如:多维数组的使用方法与二维数组相似。例如:long beans=new long2 ;beans0=new long4;beans1=new long2;八、多维数组八、多维数组现在学习的是第64页,共70页z字符数组字符数组 char message=new char10;z字符数组的初始化方法如下:字符数组的初始化方法如下:char vowels=a,e,i,o

47、,u;z 也可以通过也可以通过Arrays中的中的fill()方法进行填充,可以进行方法进行填充,可以进行初始化。例如:初始化。例如:Array.fill(vowels,a);八、多维数组八、多维数组现在学习的是第65页,共70页66本章小结本章小结v本章主要学习了本章主要学习了JavaJava语言的流程控制语句和语言的流程控制语句和JavaJava语言中数组的使用方法。语言中数组的使用方法。vJavaJava的分支语句主要有两种:分别是的分支语句主要有两种:分别是ifif语句和语句和switchswitch语句。在语句。在JavaJava中,中,ifif语句是一个基本判定语句是一个基本判定工

48、具。它在给定的逻辑表达式为工具。它在给定的逻辑表达式为truetrue时选择执行时选择执行一个语句块。当逻辑表达式为一个语句块。当逻辑表达式为falsefalse时,通过使用时,通过使用elseelse关键字选择执行另一个语句块。当一个条件关键字选择执行另一个语句块。当一个条件表达式的值有多个时,可以使用表达式的值有多个时,可以使用switchswitch语句从多语句从多个固定的选择项中选择。个固定的选择项中选择。现在学习的是第66页,共70页67本章小结本章小结vJavaJava的循环控制语句主要有的循环控制语句主要有3 3种:它们分别是适用种:它们分别是适用于循环次数已知的于循环次数已知的

49、forfor循环,循环次数未知的循环,循环次数未知的whilewhile循环和循环和do-whiledo-while循环,其中循环,其中do-whiledo-while循环结循环结构比构比whilewhile循环至少多执行一次语句体。循环至少多执行一次语句体。vJava Java 语言的跳转语句有三种:语言的跳转语句有三种:continuecontinue语句能让语句能让控制流程跳转到包含该语句的循环的下次迭代开控制流程跳转到包含该语句的循环的下次迭代开始处执行;始处执行;breakbreak语句能让控制流程退出循环或者语句能让控制流程退出循环或者是退出它所在的语句块;是退出它所在的语句块;r

50、eturnreturn语句可以控制流语句可以控制流程返回到调用此方法的语句处。程返回到调用此方法的语句处。现在学习的是第67页,共70页68本章小结本章小结JavaJava语言中对数组的介绍分为一维数组和多维数语言中对数组的介绍分为一维数组和多维数组。多维数组中以二维数组为例介绍。组。多维数组中以二维数组为例介绍。数组的使用过程分为声明、创建、初始化和访问。数组的使用过程分为声明、创建、初始化和访问。数组的声明只是对数组的定义过程,并不分配任数组的声明只是对数组的定义过程,并不分配任何的存储空间,一定要在对数组初始化之后才可何的存储空间,一定要在对数组初始化之后才可以访问数组中的数据元素。以访

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁