《程序流程控制.ppt》由会员分享,可在线阅读,更多相关《程序流程控制.ppt(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、关于程序的流程控制关于程序的流程控制1第一张,PPT共七十页,创作于2022年6月2教学目标教学目标v熟练掌握熟练掌握JavaJava语言中的流程控制结构。语言中的流程控制结构。v掌握掌握JavaJava中选择结构的基本原理及使用方法。中选择结构的基本原理及使用方法。v掌握掌握JavaJava中循环结构的基本原理及使用方法。中循环结构的基本原理及使用方法。v熟练掌握熟练掌握JavaJava中数组的使用方法及能够熟练应中数组的使用方法及能够熟练应用。用。第二张,PPT共七十页,创作于2022年6月3教学重点教学重点v流程控制构成了编程语言的逻辑流程控制构成了编程语言的逻辑,而对这些控制语而对这些
2、控制语句的灵活运用又能有助于编程逻辑的清晰整理。句的灵活运用又能有助于编程逻辑的清晰整理。v本章首先介绍了本章首先介绍了JavaJava流程控制结构中的选择结构流程控制结构中的选择结构和循环结构,最后,介绍了跳转语句的基本原理。和循环结构,最后,介绍了跳转语句的基本原理。掌握数组的声明,生成和初始化方法。掌握数组的声明,生成和初始化方法。熟练掌握数组的使用,对于多维数据,要求学生熟练掌握数组的使用,对于多维数据,要求学生主要掌握二维数组的声明、生成、初始化、及使主要掌握二维数组的声明、生成、初始化、及使用方法。用方法。第三张,PPT共七十页,创作于2022年6月4例1 1:打印一个打印一个3x
3、43x43x43x4的矩阵的矩阵class DrawRect public static void main(String args)System.out.println(“*);System.out.println(“*);System.out.println(“*);3.1 3.1 程序的流程控制程序的流程控制 第四张,PPT共七十页,创作于2022年6月5例2 2:上一个例子的变形上一个例子的变形上一个例子的变形上一个例子的变形1.class DrawRect 2.3.public static void main(String args)4.5.System.out.print(“*)
4、;6.System.out.print(“*);7.System.out.print(“*);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、作出决策,提高程序的执行效率?第五张,PPT共七十页,创作于2022年6月6分析问题找出最佳解决方案分析问题找出最佳解决方案分析问题找出最佳解决方案分析问题找出最佳解决方案v以上两种方法是初学者最容易想到的,但做了很多以上两种方法是初学者最容易想到的,但做了很多重复的工作,会使程序变得很繁琐,结构也不够清重复的工作,会使程序变得很繁琐,结构也不够清晰。在工作量少的时候似乎没那么明显,但当需要晰。在工作量少的时候似乎没那么明显,但当需要打印的矩阵比较大的时候就会显现出来(如:打印打印的矩阵比较大的时候就会显现出来(如:打印一个一个100 x60的矩阵)。的矩阵)。v想解决这个问题我们可以通过循环
6、来解决,讲到循想解决这个问题我们可以通过循环来解决,讲到循环就要先介绍一下程序的结构化设计。环就要先介绍一下程序的结构化设计。第六张,PPT共七十页,创作于2022年6月7程序设计的三种结构程序设计的三种结构v顺序结构顺序结构v循环结构循环结构v选择结构选择结构循环结构与选择结构所使用的语句又叫作循环结构与选择结构所使用的语句又叫作流程流程控制语句控制语句,作用是改变程序的执行顺序。,作用是改变程序的执行顺序。第七张,PPT共七十页,创作于2022年6月8vJava的程序控制语句分为以下几类:的程序控制语句分为以下几类:选择、循环选择、循环和跳转。和跳转。v块块(即复合语句)是指由一对花括号括
7、起来的若(即复合语句)是指由一对花括号括起来的若干条简单的干条简单的Java语句。语句。v块定义着变量的作用域(块定义着变量的作用域(scope)。一个块可以)。一个块可以嵌套在另一个块中。嵌套在另一个块中。3.1 3.1 程序的流程控制程序的流程控制第八张,PPT共七十页,创作于2022年6月93.1 3.1 程序的流程控制public static void main(String args)int a;.int b;./变量变量b的作用域只在块内,到块外便失的作用域只在块内,到块外便失去作用。去作用。.第九张,PPT共七十页,创作于2022年6月103.2 3.2 选择结构选择结构vvi
8、f if语句语句语句语句if(expression)语句语句1;语句语句2;练习:练习:NumberTest.java条件判断条件判断执行语句执行语句或代码块或代码块真真假假第十张,PPT共七十页,创作于2022年6月113.2 选择结构vif语句语句expression=true语句语句2语句块语句块语句块:用花括号括起来的语句。if(expression)statment1;statment2;语句2;左侧的语句也以下语句有什么不同?if(expression)statment1;statment2;语句2;第十一张,PPT共七十页,创作于2022年6月123.2 3.2 选择结构选择结构
9、v提示提示:合理采用缩进格式书写代码合理采用缩进格式书写代码坚持用左右大括号将坚持用左右大括号将if条件括起条件括起来的习惯,即使一条语句也括。来的习惯,即使一条语句也括。velse子句子句if(expression)statement1;elseelse statement2;statement2;next_statement;next_statement;条条件件判判断断执行语句执行语句2 2或代码块或代码块2 2假假执行语句执行语句1 1或代码块或代码块1 1真真第十二张,PPT共七十页,创作于2022年6月133.2 选择结构vif语句的嵌套形式语句的嵌套形式if()if();else
10、 ;else if();else ;z若条件若条件1成立成立,则执行哪一组则执行哪一组IF语句语句?z若条件若条件1不成立不成立,则执行哪一组则执行哪一组IF语句语句?第十三张,PPT共七十页,创作于2022年6月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+
11、1真真真真真真假假假假假假假假第十四张,PPT共七十页,创作于2022年6月153.2 3.2 选择结构选择结构vif语句的嵌套形式语句的嵌套形式 if();else if();else if().else;z什么情况下会执行到语句什么情况下会执行到语句2,什么情况下会执行到语句什么情况下会执行到语句n?z语句语句1与语句与语句2等是否可以都执行等是否可以都执行?else总是和距总是和距它最近的它最近的if配对配对第十五张,PPT共七十页,创作于2022年6月16zswitch语句又称多分支选择语句多分支选择语句z与if-else一样,是Java语言的条件选择语句,if 语句是判断条件的值,再
12、从两个程序块中选择其中一块执行,只能出现两个分支,而switch语句可存在多个分支。z处理多种分支情况时,用switch语句代替if语句可以简化程序,使程序结构清晰明了,可读性增强。3.2.3 switch3.2.3 switch语句语句第十六张,PPT共七十页,创作于2022年6月17switch语句的一般形式为:语句的一般形式为:switch()case:;break;case:;break;.case:;break;default:;产生的结果值可以是产生的结果值可以是char型型,byte型型,short型型,int型或枚型或枚举型。举型。不加不加break语句,执行流语句,执行流程如
13、何?程如何?若条件值与若条件值与case值均不匹配,而又没有值均不匹配,而又没有此句,执行流程如何?此句,执行流程如何?3.2.3 switch3.2.3 switch语句语句第十七张,PPT共七十页,创作于2022年6月18 switch()case:case:case:;break;.case:;break;default:;执行流程如何?执行流程如何?实例:实例:SwitchSample.javaSwitchSample.java3.2.3 switch3.2.3 switch语句语句第十八张,PPT共七十页,创作于2022年6月19vfor语句的一般形式为:语句的一般形式为:for(;
14、)v其中:其中:初始化部分设置控制循环的变量的初值。初始化部分设置控制循环的变量的初值。条件判断部分可以是任何布尔表达式。条件判断部分可以是任何布尔表达式。迭代因子控制循环变量递增或递减。迭代因子控制循环变量递增或递减。3.3.1 3.3.1 循环循环-for-for第十九张,PPT共七十页,创作于2022年6月20vfor语句的执行过程为:语句的执行过程为:执行初始化。执行初始化。判断条件的返回值。如果为真执行循环体语句;判断条件的返回值。如果为真执行循环体语句;如果为假就跳出如果为假就跳出for语句循环。语句循环。执行迭代因子,为下次循环做准备。执行迭代因子,为下次循环做准备。返回返回。v
15、for语句是先执行语句是先执行,即先判断后执行,如果不,即先判断后执行,如果不满足判断条件,满足判断条件,循环体可能一次都不能执行。循环体可能一次都不能执行。3.3.1 3.3.1 循环循环-for-for第二十张,PPT共七十页,创作于2022年6月21forfor循环流程图实例:实例:ForTick.java doubleFor.java前续代码及循环控前续代码及循环控制变量的定义制变量的定义循环体中的程序循环体中的程序循环控制条件循环控制条件TrueTrueFalseFalse后续代码后续代码步长变量的改变步长变量的改变第二十一张,PPT共七十页,创作于2022年6月流程图进程进程判断判
16、断输入输输入输出出起始符起始符NYYN开始开始结束结束int i=0i3?i+i4?j+int j=0打印打印*号号打印换行打印换行符号符号第二十二张,PPT共七十页,创作于2022年6月23zcollection-based for循环循环z采用采用for语句的基本格式语句的基本格式z在在for循环语句的圆括号之间的第一个控制表达式循环语句的圆括号之间的第一个控制表达式中是循环变量,然后以中是循环变量,然后以冒号冒号分隔,第二个控制表达分隔,第二个控制表达式,确定了第一个控制表达式中声明的变量的取值式,确定了第一个控制表达式中声明的变量的取值来源的集合。来源的集合。程序:程序:Average
17、Grade.java3.3.1 3.3.1 循环循环-for-for第二十三张,PPT共七十页,创作于2022年6月24while语句的一般形式为:语句的一般形式为:while();实例:实例:NumAdd.java3.3.3 3.3.3 循环循环-while-while终止条件?终止条件?执行循环体执行循环体假假初始化初始化执行步长部分执行步长部分真真第二十四张,PPT共七十页,创作于2022年6月25vwhile语句的执行过程为:语句的执行过程为:初始化,为循环设置初始值。初始化,为循环设置初始值。判断条件表达式的值,如果为真,就执行循环体语判断条件表达式的值,如果为真,就执行循环体语句;
18、如果条件表达式的值为假,就跳出句;如果条件表达式的值为假,就跳出while语句。语句。执行迭代部分,为下次循环做准备。执行迭代部分,为下次循环做准备。返回返回。vwhile语句是先执行语句是先执行,即先判断后执行,如果不满足判断,即先判断后执行,如果不满足判断条件,循环体可能一次都不能执行。条件,循环体可能一次都不能执行。注意,在循环体中应该有注意,在循环体中应该有使循环趋于结束的语句,否则循环将永远进行下去,形成死循环。使循环趋于结束的语句,否则循环将永远进行下去,形成死循环。3.3.3 3.3.3 循环循环-while-while第二十五张,PPT共七十页,创作于2022年6月26whil
19、ewhile循环循环的流程图的流程图前续代码及循环控前续代码及循环控制变量的定义制变量的定义循环体中的程序循环体中的程序循环控制条件循环控制条件TrueFalse后续代码后续代码实例:实例:AverageGrade2.java第二十六张,PPT共七十页,创作于2022年6月27 for for循环与循环与whilewhile循环的比较循环的比较vfor循环比循环比while循环结构清晰。循环结构清晰。1.for循环的循环控制变量的定义、初始化,选换循环的循环控制变量的定义、初始化,选换结束的条件,步长变量的控制都在一条语句中实结束的条件,步长变量的控制都在一条语句中实现。现。2.while循环
20、的循环控制变量是在循环之前定义的,循环的循环控制变量是在循环之前定义的,循环控制条件与循环控制条件与for相同,而步长变量是在循环相同,而步长变量是在循环体内部修改的。体内部修改的。v有时候用有时候用while实现会方便很多。例如在程序中将在实现会方便很多。例如在程序中将在110之间产生一个随机数,当产生的数字为之间产生一个随机数,当产生的数字为7的时候打印的时候打印一个提示语句并结束程序,否则继续执行直到产生的数一个提示语句并结束程序,否则继续执行直到产生的数字为字为7。第二十七张,PPT共七十页,创作于2022年6月28zwhile语句先判断后执行语句先判断后执行,while语句为语句为“
21、当型当型“循环循环zdo-while语句先执行后判断,循环体至少被执语句先执行后判断,循环体至少被执行一次行一次,称称do-while语句为语句为”直到型直到型“循环。循环。3.3.5 3.3.5 循环循环-do-while-do-while第二十八张,PPT共七十页,创作于2022年6月29do-while语句的一般形式为语句的一般形式为:do ;while();注意:这里注意:这里while()后面有一个()后面有一个“;”3.3.5 3.3.5 循环循环-do-while-do-while终止条件?终止条件?执行循环体执行循环体假假初始化初始化执行步长部分执行步长部分真真第二十九张,PP
22、T共七十页,创作于2022年6月30vdo-while语句的执行过程为:语句的执行过程为:初始化,为循环设置初始值。初始化,为循环设置初始值。执行循环体语句。执行循环体语句。执行跌代部分,为下次循环做准备。执行跌代部分,为下次循环做准备。判断条件表达式的值,如果为真,就返回判断条件表达式的值,如果为真,就返回;如果条件表达式的值为假,就跳出如果条件表达式的值为假,就跳出do-while语句。语句。vdo-while语句是先执行循环体,再判断,循环体语句是先执行循环体,再判断,循环体至少被执行一次。同样,在循环体中应该有使循至少被执行一次。同样,在循环体中应该有使循环趋于结束的语句。环趋于结束的
23、语句。3.3.5 3.3.5 3.3.5 3.3.5 循环循环循环循环-do-while-do-while第三十张,PPT共七十页,创作于2022年6月31do whiledo while循环循环流程图流程图程序见:程序见:IntTurn.java前续代码及循环控前续代码及循环控制变量的定义制变量的定义循环体中的程序循环体中的程序循环控制条件循环控制条件TrueTrueFalseFalse第三十一张,PPT共七十页,创作于2022年6月32z嵌套循环:嵌套循环:用户可以将任何一种循环嵌入到另一用户可以将任何一种循环嵌入到另一种循环中,并且可以进行任意多重的嵌套。种循环中,并且可以进行任意多重的
24、嵌套。例题:计算从例题:计算从1开始到给定数值之间所有整数的乘积。开始到给定数值之间所有整数的乘积。程序见:程序见:Factorial.java3.3 3.3 循环循环第三十二张,PPT共七十页,创作于2022年6月33z功能:功能:结束本循环,跳到循环语句之后的第一条语结束本循环,跳到循环语句之后的第一条语句处执行。句处执行。例题:例题:BreakLoop1.javaz带标号的带标号的break语句:语句:允许程序跳转至有标号的外允许程序跳转至有标号的外层块或循环之后的语句处继续执行,而不管这些嵌套层块或循环之后的语句处继续执行,而不管这些嵌套块有多少层。块有多少层。程序见:程序见:Brea
25、kLoop2.java3.4 3.4 跳转语句跳转语句 -break-break第三十三张,PPT共七十页,创作于2022年6月34z功能:结束本次循环,进入下一次循环,例如:功能:结束本次循环,进入下一次循环,例如:for(int i=1;i=limit;i+)if(i%3=0)continue;sum+=i;3.4.2 continue3.4.2 continue第三十四张,PPT共七十页,创作于2022年6月35z功能:可以停止执行内循环,并且可以直接跳转至功能:可以停止执行内循环,并且可以直接跳转至包含本循环的外循环的下一轮迭代的起始处继续执行。包含本循环的外循环的下一轮迭代的起始处继
26、续执行。程序见:程序见:MultiList.java3.4.2 3.4.2 带标号的带标号的continuecontinue第三十五张,PPT共七十页,创作于2022年6月3.5 3.5 数组数组问题的提出问题的提出 现有一班级共现有一班级共3030人,想要计算全班参人,想要计算全班参加英语考试的平均分数,应如何设计程序加英语考试的平均分数,应如何设计程序实现?实现?问题的分析问题的分析(1)(1)程序结构程序结构?顺序,选择,循环顺序,选择,循环(2)(2)数据结构数据结构?单变量,数组单变量,数组第三十六张,PPT共七十页,创作于2022年6月数组:是一个具有数组:是一个具有相同类型相同类
27、型变量的指定的集变量的指定的集合的对象。合的对象。数组元素:数组中的每个变量,由数组名和数组元素:数组中的每个变量,由数组名和一个一个intint型的整数值表示。型的整数值表示。索引索引:数据名后的整数值,一般放在数组名后数据名后的整数值,一般放在数组名后面的方括号中。面的方括号中。注意注意:数组中第一个元素的索引值是数组中第一个元素的索引值是0 0。int age;age0=18;数组名数组名数组名数组名索引索引索引索引数组类型数组类型数组类型数组类型3.5 3.5 数组数组第三十七张,PPT共七十页,创作于2022年6月一、数组变量一、数组变量数组变量数组变量和所和所引用的数组引用的数组是
28、两个分离的实体。是两个分离的实体。为数组变量所分配的内存空间保存着对数组对象为数组变量所分配的内存空间保存着对数组对象的引用,而不是数组对象本身。的引用,而不是数组对象本身。数组对象本身是一个存在于内存其它位置的独数组对象本身是一个存在于内存其它位置的独特实体。特实体。引用对象的变量中存储的是引用。引用对象的变量中存储的是引用。引用记录着它所引用的对象的内存地址。引用记录着它所引用的对象的内存地址。第三十八张,PPT共七十页,创作于2022年6月39v基本数据类型一维数组内存分配基本数据类型一维数组内存分配栈内存栈内存堆内存堆内存numnumc c0 00 00 00088:44000088:
29、44000088:44000088:4400new int3new int3产产生的对象生的对象数组的内存分配图数组的内存分配图一、数组变量一、数组变量第三十九张,PPT共七十页,创作于2022年6月40v基本数据类型一维数组内存分配基本数据类型一维数组内存分配栈内存栈内存堆内存堆内存numnumc c0 00 00 0nullnull0088:44000088:4400new int3new int3产产生的对象生的对象数组的内存分配图数组的内存分配图num=null;0088:44000088:4400一、数组变量一、数组变量第四十张,PPT共七十页,创作于2022年6月41堆内存堆内存s
30、tudentsnullStudent students;栈内存栈内存一、数组变量一、数组变量第四十一张,PPT共七十页,创作于2022年6月42堆内存堆内存studentsc0088:44000088:4400new students3new students3产产生的对象生的对象nullnull Student students;students=new Student3;null栈内存栈内存一、数组变量一、数组变量第四十二张,PPT共七十页,创作于2022年6月43堆内存堆内存studentsc0088:44000088:4400new students3new students3产产生的
31、对象生的对象nullnullStudent students;students=new Student3;students0=new Student(“lisi”,18);student0student0标识的标识的StudentStudent对象对象lisi180088:46600088:4660栈内存栈内存一、数组变量一、数组变量第四十三张,PPT共七十页,创作于2022年6月二、数组定义二、数组定义声明一维数组的两种格式:声明一维数组的两种格式:n数组元素类型数组元素类型 数组名字数组名字;double anArray;n数组元素类型数组元素类型 数组名字;数组名字;double anA
32、rray;声明二维数组的两种格式:声明二维数组的两种格式:n数组元素类型数组元素类型 数组名字数组名字 ;n数组元素类型数组元素类型 数组名字;数组名字;创建数组创建数组数组名字数组名字=new 数组元素的类型数组元素的类型数组元素的个数数组元素的个数注意:声明时不注意:声明时不能指定数组的大能指定数组的大小!小!第四十四张,PPT共七十页,创作于2022年6月举例举例:int primes;primes=new int10;或或 int primes=new int10;注意数组的静态性:一旦创建就不能修改数组的长度!注意数组的静态性:一旦创建就不能修改数组的长度!二、数组定义二、数组定义第
33、四十五张,PPT共七十页,创作于2022年6月三、数组长度三、数组长度利用数组对象的数据成员利用数组对象的数据成员length可引用该数组可引用该数组的长度,即该数组中所包含的元素个数。的长度,即该数组中所包含的元素个数。若有若有:double myArray=new double100;则可使用则可使用myArray.length来引用它的长度,即得来引用它的长度,即得到的数值为到的数值为100。第四十六张,PPT共七十页,创作于2022年6月double anArray;anArray=new double3anArray:?length3012anArray:nullHere,the a
34、rray isnot defined.Here,the array isdefined,but theelements in the arrayare NOT defined.三、数组长度三、数组长度第四十七张,PPT共七十页,创作于2022年6月四、访问数组元素四、访问数组元素访问数组元素访问数组元素:数组名数组名索引值索引值例如例如:对前面所声明的对前面所声明的primes数组,其第一个元数组,其第一个元素的引用是素的引用是primes0若索引值小于若索引值小于0或大于最后一个的索引值,系统或大于最后一个的索引值,系统都会抛出一个异常都会抛出一个异常(Exception)。抛出异常只是指示
35、运行时错误的抛出异常只是指示运行时错误的一种方式,不同种类的错误就有一种方式,不同种类的错误就有不同类型的异常,当程序抛出异不同类型的异常,当程序抛出异常时,通常会被终止。常时,通常会被终止。第四十八张,PPT共七十页,创作于2022年6月vE has length 6;vE4 is 14;vIf i is 3,then Ei is-2;vAssign a value:E5=6.0Elength:6473-2146123450四、访问数组元素四、访问数组元素第四十九张,PPT共七十页,创作于2022年6月五、数组变量的重用五、数组变量的重用Java语言允许语言允许类型相同类型相同,而,而长度不
36、同长度不同的两个数的两个数组组互相赋值互相赋值。赋值的结果是两个数组名指向同。赋值的结果是两个数组名指向同一数组。一数组。例如例如:int primes=new int10;primes=new int50;例如:例如:double dub=new int10;/illegal注意:注意:可以改变数组变量所引用的数组,但可以改变数组变量所引用的数组,但是不可以改变数组元素所存储的值的类型。是不可以改变数组元素所存储的值的类型。第五十张,PPT共七十页,创作于2022年6月数组赋值只是对引用的复制数组赋值只是对引用的复制B=Aresults in:ABNOT:AB03length203lengt
37、h203length2lHow can we make a copy of an array?五、数组变量的重用五、数组变量的重用第五十一张,PPT共七十页,创作于2022年6月六、数组的初始化六、数组的初始化定义数组时直接初始化定义数组时直接初始化:如如:int primes=1,2,3,4,5,6,7;/此数组为此数组为7个元素个元素注意:注意:z初始化数组时,必须给出所有元素的值初始化数组时,必须给出所有元素的值.z若只对数组的部分元素指定初值,可以对这部分数若只对数组的部分元素指定初值,可以对这部分数组元素单独赋值,其它未赋值元素默认为组元素单独赋值,其它未赋值元素默认为0。z例如:例
38、如:int primes=new int100;primes0=1;或或 for(int i=0;iprimes.length;i)primesi=1;第五十二张,PPT共七十页,创作于2022年6月使用实用方法初始化数组使用实用方法初始化数组 import java.util.Arrays;Arrays.fill(primes,1);使用已有数组的引用来初始化数组变量使用已有数组的引用来初始化数组变量 long even=2L,4L,6L,8L;long value=even;分析:分析:创建了创建了_个数组变量个数组变量,创建了创建了_个数组个数组.解答:解答:两个数组变量都引用同一个数组
39、,而且通过两个两个数组变量都引用同一个数组,而且通过两个变量名都可以访问这个数组的元素。变量名都可以访问这个数组的元素。六、数组的初始化六、数组的初始化第五十三张,PPT共七十页,创作于2022年6月例如:对非基本数据类型例如:对非基本数据类型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,20
40、00),new MyDate(22,12,1964);六、数组的初始化六、数组的初始化第五十四张,PPT共七十页,创作于2022年6月数组交换的方法数组交换的方法double input=new double100;double output=new double100;double temp;temp=input;input=output;output=temp;分析:分析:是交换数组地址还是数组内容?是交换数组地址还是数组内容?解答:解答:此种方法只是此种方法只是交换了数组在内存中的地址交换了数组在内存中的地址,没,没有移动任何数组元素。若要复制数组,则需定义同样有移动任何数组元素。若要复
41、制数组,则需定义同样大小的数组,并把原数组中的元素逐个复制到新数组大小的数组,并把原数组中的元素逐个复制到新数组中。中。六、数组的初始化六、数组的初始化第五十五张,PPT共七十页,创作于2022年6月03length2A=B is trueA=B is falseAB03length203length2AB03length2l当两个数组之间进行比较和赋值的时候,只是两个数当两个数组之间进行比较和赋值的时候,只是两个数组的组的引用引用进行比较和赋值。(进行比较和赋值。(It is the references that are compared or assigned,not the array
42、s.)六、数组的初始化六、数组的初始化第五十六张,PPT共七十页,创作于2022年6月七、数组的使用七、数组的使用 double samples=new double50;double average=0.0;for(int i=0;isamples.length;i+)samplesi=100.0*Math.random();for(int i=0;isamples.length;i+)average+=samplesi;average/=samples.length;第五十七张,PPT共七十页,创作于2022年6月八、多维数组八、多维数组z二维数组二维数组:根据两个索引值的变化,可以访问数
43、组的行或根据两个索引值的变化,可以访问数组的行或列。列。z声明格式:声明格式:n类型说明符类型说明符 数组名数组名 ;n类型说明符类型说明符 数组名;数组名;z二维数组的初始化二维数组的初始化n直接指定初值直接指定初值n用用new操作符操作符第五十八张,PPT共七十页,创作于2022年6月z先声明数组再初始化数组先声明数组再初始化数组n数组名数组名=new 类型说明符类型说明符行数行数 ;n数组名数组名=new 类型说明符类型说明符行数行数 列数列数;z例:例:int arra ;/声明二维数组声明二维数组arra=new int34;/初始化二维数组初始化二维数组等价于:等价于:arra=n
44、ew int3;arra0=new int4;arra1=new int4;arra2=new int4;arra=new int3 for(int i=0;i3;i+)arrai=new int4;八、多维数组八、多维数组第五十九张,PPT共七十页,创作于2022年6月z定义二维数组也可以采用如下方式:定义二维数组也可以采用如下方式:float temperature;temperature=new float10365;例题:气象迷例题:气象迷 程序见程序见WeatherFan.javaint arr=new int 4;是否正确?是否正确?八、多维数组八、多维数组第六十张,PPT共七十页
45、,创作于2022年6月z不同长度的嵌套数组不同长度的嵌套数组 在在Java中,创建嵌套数组时,其中的各个数组的长度中,创建嵌套数组时,其中的各个数组的长度可以不同,例如:可以不同,例如:float samples=new float6;则变量则变量samples引用了一个具有引用了一个具有6个元素的数组,其个元素的数组,其中每个元素可以容纳一个对一维数组的引用,可以单中每个元素可以容纳一个对一维数组的引用,可以单独定义这些数组,例如:独定义这些数组,例如:samples2=new float3;samples5=new float10;八、多维数组八、多维数组第六十一张,PPT共七十页,创作于
46、2022年6月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)mat2mat3八、多维数组八、多维数组第六十二张,PPT共七十页,创作于2022年6月z分析如下代码的功能:分析如下代码的功能:float samples=new float6;for(int i=0;isam
47、ples.length;i+)samplesi=new floati+1;for(int i=0;isamples.length;i+)for(int j=0;jsamplesi.length;j+)samplesij=99.0f;八、多维数组八、多维数组第六十三张,PPT共七十页,创作于2022年6月z多维数组多维数组 long beans=new long51030;数组数组beans被定义为一个三维数组,也可以说其具有被定义为一个三维数组,也可以说其具有5个个元素,每个元素都保存了一个对二维数组的引用,这元素,每个元素都保存了一个对二维数组的引用,这些二维数组又可以互不相同。些二维数组又
48、可以互不相同。z多维数组的使用方法与二维数组相似。例如:多维数组的使用方法与二维数组相似。例如:long beans=new long2 ;beans0=new long4;beans1=new long2;八、多维数组八、多维数组第六十四张,PPT共七十页,创作于2022年6月z字符数组字符数组 char message=new char10;z字符数组的初始化方法如下:字符数组的初始化方法如下:char vowels=a,e,i,o,u;z 也可以通过也可以通过Arrays中的中的fill()方法进行填充,可以进行方法进行填充,可以进行初始化。例如:初始化。例如:Array.fill(vo
49、wels,a);八、多维数组八、多维数组第六十五张,PPT共七十页,创作于2022年6月66本章小结本章小结v本章主要学习了本章主要学习了JavaJava语言的流程控制语句和语言的流程控制语句和JavaJava语言中数组的使用方法。语言中数组的使用方法。vJavaJava的分支语句主要有两种:分别是的分支语句主要有两种:分别是ifif语句和语句和switchswitch语句。在语句。在JavaJava中,中,ifif语句是一个基本判定语句是一个基本判定工具。它在给定的逻辑表达式为工具。它在给定的逻辑表达式为truetrue时选择执行时选择执行一个语句块。当逻辑表达式为一个语句块。当逻辑表达式为
50、falsefalse时,通过使用时,通过使用elseelse关键字选择执行另一个语句块。当一个条件关键字选择执行另一个语句块。当一个条件表达式的值有多个时,可以使用表达式的值有多个时,可以使用switchswitch语句从多语句从多个固定的选择项中选择。个固定的选择项中选择。第六十六张,PPT共七十页,创作于2022年6月67本章小结本章小结vJavaJava的循环控制语句主要有的循环控制语句主要有3 3种:它们分别是适用种:它们分别是适用于循环次数已知的于循环次数已知的forfor循环,循环次数未知的循环,循环次数未知的whilewhile循环和循环和do-whiledo-while循环,其