《程序的流程控制精选PPT.ppt》由会员分享,可在线阅读,更多相关《程序的流程控制精选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:打印一个打印一个打印一个打印一个3x43x43x4
3、3x4的矩阵的矩阵的矩阵的矩阵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:上一个例子的变形上一个例子的变形1.class DrawRect 2.3.public static void main(String args)4.5.System.out.print(“*);6.System.out.print(“*);
4、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页,讲稿共70
5、张,创作于星期二6分析问题找出最佳解决方案分析问题找出最佳解决方案分析问题找出最佳解决方案分析问题找出最佳解决方案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;练习:练习:Nu
8、mberTest.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;statement2;next_statement;next_statement;条条件件判判断断执行语句执行语句2 2或代码块或代码块2 2假假执行语句执行语句1 1或代码块或代码块1 1真真第12页,讲稿共70张,创作于星期二133.2 选择结构vif语句的嵌套形式语句的嵌套形式if()if();else ;else if();else ;z若条件若条件1成立成立,则执行哪一组则执行哪一组IF语句语句
10、?z若条件若条件1不成立不成立,则执行哪一组则执行哪一组IF语句语句?第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
11、语句的嵌套形式语句的嵌套形式 if();else if();else if().else;z什么情况下会执行到语句什么情况下会执行到语句2,什么情况下会执行到语句什么情况下会执行到语句n?z语句语句1与语句与语句2等是否可以都执行等是否可以都执行?else总是和距总是和距它最近的它最近的if配对配对第15页,讲稿共70张,创作于星期二16zswitch语句又称多分支选择语句多分支选择语句z与if-else一样,是Java语言的条件选择语句,if 语句是判断条件的值,再从两个程序块中选择其中一块执行,只能出现两个分支,而switch语句可存在多个分支。z处理多种分支情况时,用switch语句代替
12、if语句可以简化程序,使程序结构清晰明了,可读性增强。3.2.3 switch3.2.3 switch语句语句第16页,讲稿共70张,创作于星期二17switch语句的一般形式为:语句的一般形式为:switch()case:;break;case:;break;.case:;break;default:;产生的结果值可以是产生的结果值可以是char型型,byte型型,short型型,int型或枚举型或枚举型。型。不加不加break语句,执行流语句,执行流程如何?程如何?若条件值与若条件值与case值均不匹配,而又没有值均不匹配,而又没有此句,执行流程如何?此句,执行流程如何?3.2.3 swi
13、tch3.2.3 switch语句语句第17页,讲稿共70张,创作于星期二18 switch()case:case:case:;break;.case:;break;default:;执行流程如何?执行流程如何?实例:实例:SwitchSample.javaSwitchSample.java3.2.3 switch3.2.3 switch语句语句第18页,讲稿共70张,创作于星期二19vfor语句的一般形式为:语句的一般形式为:for(;)v其中:其中:初始化部分设置控制循环的变量的初值。初始化部分设置控制循环的变量的初值。条件判断部分可以是任何布尔表达式。条件判断部分可以是任何布尔表达式。迭
14、代因子控制循环变量递增或递减。迭代因子控制循环变量递增或递减。3.3.1 3.3.1 循环循环-for-for第19页,讲稿共70张,创作于星期二20vfor语句的执行过程为:语句的执行过程为:执行初始化。执行初始化。判断条件的返回值。如果为真执行循环体语判断条件的返回值。如果为真执行循环体语句;如果为假就跳出句;如果为假就跳出for语句循环。语句循环。执行迭代因子,为下次循环做准备。执行迭代因子,为下次循环做准备。返回返回。vfor语句是先执行语句是先执行,即先判断后执行,如果不,即先判断后执行,如果不满足判断条件,满足判断条件,循环体可能一次都不能执行。循环体可能一次都不能执行。3.3.1
15、 3.3.1 循环循环-for-for第20页,讲稿共70张,创作于星期二21forfor循环流程图实例:实例:ForTick.java doubleFor.java前续代码及循环控前续代码及循环控制变量的定义制变量的定义循环体中的程序循环体中的程序循环控制条件循环控制条件TrueTrueFalseFalse后续代码后续代码步长变量的改变步长变量的改变第21页,讲稿共70张,创作于星期二流程图进程进程判断判断输入输出输入输出起始符起始符NYYN开始开始结束结束int i=0i3?i+i4?j+int j=0打印打印*号号打印换行打印换行符号符号第22页,讲稿共70张,创作于星期二23zcoll
16、ection-based for循环循环z采用采用for语句的基本格式语句的基本格式z在在for循环语句的圆括号之间的第一个控制表循环语句的圆括号之间的第一个控制表达式中是循环变量,然后以达式中是循环变量,然后以冒号冒号分隔,第二个控分隔,第二个控制表达式,确定了第一个控制表达式中声明的变制表达式,确定了第一个控制表达式中声明的变量的取值来源的集合。量的取值来源的集合。程序:程序:AverageGrade.java3.3.1 3.3.1 循环循环-for-for第23页,讲稿共70张,创作于星期二24while语句的一般形式为:语句的一般形式为:while();实例:实例:NumAdd.jav
17、a3.3.3 3.3.3 循环循环-while-while终止条件?终止条件?执行循环体执行循环体假假初始化初始化执行步长部分执行步长部分真真第24页,讲稿共70张,创作于星期二25vwhile语句的执行过程为:语句的执行过程为:初始化,为循环设置初始值。初始化,为循环设置初始值。判断条件表达式的值,如果为真,就执行循环体语判断条件表达式的值,如果为真,就执行循环体语句;如果条件表达式的值为假,就跳出句;如果条件表达式的值为假,就跳出while语句。语句。执行迭代部分,为下次循环做准备。执行迭代部分,为下次循环做准备。返回返回。vwhile语句是先执行语句是先执行,即先判断后执行,如果不满足判
18、断条件,即先判断后执行,如果不满足判断条件,循环体可能一次都不能执行。循环体可能一次都不能执行。注意,在循环体中应该有使循注意,在循环体中应该有使循环趋于结束的语句,否则循环将永远进行下去,形成死循环。环趋于结束的语句,否则循环将永远进行下去,形成死循环。3.3.3 3.3.3 循环循环-while-while第25页,讲稿共70张,创作于星期二26whilewhile循环循环的流程图的流程图前续代码及循环控前续代码及循环控制变量的定义制变量的定义循环体中的程序循环体中的程序循环控制条件循环控制条件TrueFalse后续代码后续代码实例:实例:AverageGrade2.java第26页,讲稿
19、共70张,创作于星期二27 for for循环与循环与whilewhile循环的比较循环的比较vfor循环比循环比while循环结构清晰。循环结构清晰。1.for循环的循环控制变量的定义、初始化,选换循环的循环控制变量的定义、初始化,选换结束的条件,步长变量的控制都在一条语句中结束的条件,步长变量的控制都在一条语句中实现。实现。2.while循环的循环控制变量是在循环之前定义的,循环的循环控制变量是在循环之前定义的,循环控制条件与循环控制条件与for相同,而步长变量是在循环相同,而步长变量是在循环体内部修改的。体内部修改的。v有时候用有时候用while实现会方便很多。例如在程序中将在实现会方便
20、很多。例如在程序中将在110之间产生一个随机数,当产生的数字为之间产生一个随机数,当产生的数字为7的时候打印的时候打印一个提示语句并结束程序,否则继续执行直到产生的一个提示语句并结束程序,否则继续执行直到产生的数字为数字为7。第27页,讲稿共70张,创作于星期二28zwhile语句先判断后执行语句先判断后执行,while语句为语句为“当型当型“循环循环zdo-while语句先执行后判断,循环体至少被执语句先执行后判断,循环体至少被执行一次行一次,称称do-while语句为语句为”直到型直到型“循环。循环。3.3.5 3.3.5 循环循环-do-while-do-while第28页,讲稿共70张
21、,创作于星期二29do-while语句的一般形式为语句的一般形式为:do ;while();注意:这里注意:这里while()后面有一个()后面有一个“;”3.3.5 3.3.5 循环循环-do-while-do-while终止条件?终止条件?执行循环体执行循环体假假初始化初始化执行步长部分执行步长部分真真第29页,讲稿共70张,创作于星期二30vdo-while语句的执行过程为:语句的执行过程为:初始化,为循环设置初始值。初始化,为循环设置初始值。执行循环体语句。执行循环体语句。执行跌代部分,为下次循环做准备。执行跌代部分,为下次循环做准备。判断条件表达式的值,如果为真,就返回判断条件表达式
22、的值,如果为真,就返回;如果条;如果条件表达式的值为假,就跳出件表达式的值为假,就跳出do-while语句。语句。vdo-while语句是先执行循环体,再判断,循环体语句是先执行循环体,再判断,循环体至少被执行一次。同样,在循环体中应该有使循至少被执行一次。同样,在循环体中应该有使循环趋于结束的语句。环趋于结束的语句。3.3.5 3.3.5 循环循环-do-while-do-while-do-while-do-while第30页,讲稿共70张,创作于星期二31do whiledo while循环循环流程图流程图程序见:程序见:IntTurn.java前续代码及循环控前续代码及循环控制变量的定义
23、制变量的定义循环体中的程序循环体中的程序循环控制条件循环控制条件TrueTrueFalseFalse第31页,讲稿共70张,创作于星期二32z嵌套循环:嵌套循环:用户可以将任何一种循环嵌入到另一用户可以将任何一种循环嵌入到另一种循环中,并且可以进行任意多重的嵌套。种循环中,并且可以进行任意多重的嵌套。例题:计算从例题:计算从1开始到给定数值之间所有整数的乘积。开始到给定数值之间所有整数的乘积。程序见:程序见:Factorial.java3.3 3.3 循环循环第32页,讲稿共70张,创作于星期二33z功能:功能:结束本循环,跳到循环语句之后的第一条结束本循环,跳到循环语句之后的第一条语句处执行
24、。语句处执行。例题:例题:BreakLoop1.javaz带标号的带标号的break语句:语句:允许程序跳转至有标号的外允许程序跳转至有标号的外层块或循环之后的语句处继续执行,而不管这些嵌套层块或循环之后的语句处继续执行,而不管这些嵌套块有多少层。块有多少层。程序见:程序见: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 c
25、ontinue3.4.2 continue第34页,讲稿共70张,创作于星期二35z功能:可以停止执行内循环,并且可以直接跳转至包含功能:可以停止执行内循环,并且可以直接跳转至包含本循环的外循环的下一轮迭代的起始处继续执行。本循环的外循环的下一轮迭代的起始处继续执行。程序见:程序见:MultiList.java3.4.2 3.4.2 带标号的带标号的continuecontinue第35页,讲稿共70张,创作于星期二3.5 3.5 数组数组问题的提出问题的提出 现有一班级共现有一班级共3030人,想要计算全班参人,想要计算全班参加英语考试的平均分数,应如何设计程序加英语考试的平均分数,应如何设
26、计程序实现?实现?问题的分析问题的分析(1)(1)程序结构程序结构?顺序,选择,循环顺序,选择,循环(2)(2)数据结构数据结构?单变量,数组单变量,数组第36页,讲稿共70张,创作于星期二数组:是一个具有数组:是一个具有相同类型相同类型变量的指定的集合变量的指定的集合的对象。的对象。数组元素:数组中的每个变量,由数组名和数组元素:数组中的每个变量,由数组名和一个一个intint型的整数值表示。型的整数值表示。索引索引:数据名后的整数值,一般放在数组名后面数据名后的整数值,一般放在数组名后面的方括号中。的方括号中。注意注意:数组中第一个元素的索引值是数组中第一个元素的索引值是0 0。int a
27、ge;int age;age0=18;age0=18;数组名数组名数组名数组名索引索引索引索引数组类型数组类型数组类型数组类型3.5 3.5 数组数组第37页,讲稿共70张,创作于星期二一、数组变量一、数组变量数组变量数组变量和所和所引用的数组引用的数组是两个分离的实体。是两个分离的实体。为数组变量所分配的内存空间保存着对数组对象为数组变量所分配的内存空间保存着对数组对象的引用,而不是数组对象本身。的引用,而不是数组对象本身。数组对象本身是一个存在于内存其它位置的独特数组对象本身是一个存在于内存其它位置的独特实体。实体。引用对象的变量中存储的是引用。引用对象的变量中存储的是引用。引用记录着它所
28、引用的对象的内存地址。引用记录着它所引用的对象的内存地址。第38页,讲稿共70张,创作于星期二39v基本数据类型一维数组内存分配基本数据类型一维数组内存分配栈内存栈内存堆内存堆内存numnumc c0 00 00 00088:44000088:44000088:44000088:4400new int3new int3产产生的对象生的对象数组的内存分配图数组的内存分配图一、数组变量一、数组变量第39页,讲稿共70张,创作于星期二40v基本数据类型一维数组内存分配基本数据类型一维数组内存分配栈内存栈内存堆内存堆内存numnumc c0 00 00 0nullnull0088:44000088:4
29、400new int3new int3产产生的对象生的对象数组的内存分配图数组的内存分配图num=null;0088:44000088:4400一、数组变量一、数组变量第40页,讲稿共70张,创作于星期二41堆内存堆内存studentsnullStudent students;栈内存栈内存一、数组变量一、数组变量第41页,讲稿共70张,创作于星期二42堆内存堆内存studentsc0088:44000088:4400new students3new students3产产生的对象生的对象nullnull Student students;students=new Student3;null栈内
30、存栈内存一、数组变量一、数组变量第42页,讲稿共70张,创作于星期二43堆内存堆内存studentsc0088:44000088:4400new students3new students3产产生的对象生的对象nullnullStudent students;students=new Student3;students0=new Student(“lisi”,18);student0student0标识的标识的StudentStudent对象对象lisi180088:46600088:4660栈内存栈内存一、数组变量一、数组变量第43页,讲稿共70张,创作于星期二二、数组定义二、数组定义声明一
31、维数组的两种格式:声明一维数组的两种格式:n数组元素类型数组元素类型 数组名字数组名字;double anArray;n数组元素类型数组元素类型 数组名字;数组名字;double anArray;声明二维数组的两种格式:声明二维数组的两种格式:n数组元素类型数组元素类型 数组名字数组名字 ;n数组元素类型数组元素类型 数组名字;数组名字;创建数组创建数组数组名字数组名字=new 数组元素的类型数组元素的类型数组元素的个数数组元素的个数注意:声明时不注意:声明时不能指定数组的大能指定数组的大小!小!第44页,讲稿共70张,创作于星期二举例举例:int primes;primes=new int1
32、0;或或 int primes=new int10;注意数组的静态性:一旦创建就不能修改数组的长度!注意数组的静态性:一旦创建就不能修改数组的长度!二、数组定义二、数组定义第45页,讲稿共70张,创作于星期二三、数组长度三、数组长度利用数组对象的数据成员利用数组对象的数据成员length可引用该数组可引用该数组的长度,即该数组中所包含的元素个数。的长度,即该数组中所包含的元素个数。若有若有:double myArray=new double100;则可使用则可使用myArray.length来引用它的长度,即来引用它的长度,即得到的数值为得到的数值为100。第46页,讲稿共70张,创作于星期二
33、double anArray;anArray=new double3anArray:?length3012anArray:nullHere,the array isnot defined.Here,the array isdefined,but theelements in the arrayare NOT defined.三、数组长度三、数组长度第47页,讲稿共70张,创作于星期二四、访问数组元素四、访问数组元素访问数组元素访问数组元素:数组名数组名索引值索引值例如例如:对前面所声明的对前面所声明的primes数组,其第一个元数组,其第一个元素的引用是素的引用是primes0若索引值小于若索
34、引值小于0或大于最后一个的索引值,系统或大于最后一个的索引值,系统都会抛出一个异常都会抛出一个异常(Exception)。抛出异常只是指示运行时错误的一抛出异常只是指示运行时错误的一种方式,不同种类的错误就有不同种方式,不同种类的错误就有不同类型的异常,当程序抛出异常时,类型的异常,当程序抛出异常时,通常会被终止。通常会被终止。第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页,讲
35、稿共70张,创作于星期二五、数组变量的重用五、数组变量的重用Java语言允许语言允许类型相同类型相同,而,而长度不同长度不同的两个数的两个数组组互相赋值互相赋值。赋值的结果是两个数组名指向同一数。赋值的结果是两个数组名指向同一数组。组。例如例如:int primes=new int10;primes=new int50;例如:例如:double dub=new int10;/illegal注意:注意:可以改变数组变量所引用的数组,但是可以改变数组变量所引用的数组,但是不可以改变数组元素所存储的值的类型。不可以改变数组元素所存储的值的类型。第50页,讲稿共70张,创作于星期二数组赋值只是对引用的
36、复制数组赋值只是对引用的复制B=Aresults in:ABNOT:AB03length203length203length2lHow can we make a copy of an array?五、数组变量的重用五、数组变量的重用第51页,讲稿共70张,创作于星期二六、数组的初始化六、数组的初始化定义数组时直接初始化定义数组时直接初始化:如如:int primes=1,2,3,4,5,6,7;/此数组为此数组为7个元素个元素注意:注意:z初始化数组时,必须给出所有元素的值初始化数组时,必须给出所有元素的值.z若只对数组的部分元素指定初值,可以对这部分数组元若只对数组的部分元素指定初值,可以
37、对这部分数组元素单独赋值,其它未赋值元素默认为素单独赋值,其它未赋值元素默认为0。z例如:例如:int primes=new int100;primes0=1;或或 for(int i=0;iprimes.length;i)primesi=1;第52页,讲稿共70张,创作于星期二使用实用方法初始化数组使用实用方法初始化数组 import java.util.Arrays;Arrays.fill(primes,1);使用已有数组的引用来初始化数组变量使用已有数组的引用来初始化数组变量 long even=2L,4L,6L,8L;long value=even;分析:分析:创建了创建了_个数组变量
38、个数组变量,创建了创建了_个数组个数组.解答:解答:两个数组变量都引用同一个数组,而且通过两个两个数组变量都引用同一个数组,而且通过两个变量名都可以访问这个数组的元素。变量名都可以访问这个数组的元素。六、数组的初始化六、数组的初始化第53页,讲稿共70张,创作于星期二例如:对非基本数据类型例如:对非基本数据类型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 M
39、yDate(22,7,1964),new MyDate(1,1,2000),new MyDate(22,12,1964);六、数组的初始化六、数组的初始化第54页,讲稿共70张,创作于星期二数组交换的方法数组交换的方法double input=new double100;double output=new double100;double temp;temp=input;input=output;output=temp;分析:分析:是交换数组地址还是数组内容?是交换数组地址还是数组内容?解答:解答:此种方法只是此种方法只是交换了数组在内存中的地址交换了数组在内存中的地址,没有,没有移动任何数组
40、元素。若要复制数组,则需定义同样大小的移动任何数组元素。若要复制数组,则需定义同样大小的数组,并把原数组中的元素逐个复制到新数组中。数组,并把原数组中的元素逐个复制到新数组中。六、数组的初始化六、数组的初始化第55页,讲稿共70张,创作于星期二03length2A=B is trueA=B is falseAB03length203length2AB03length2l当两个数组之间进行比较和赋值的时候,只是两个当两个数组之间进行比较和赋值的时候,只是两个数组的数组的引用引用进行比较和赋值。(进行比较和赋值。(It is the references that are compared or
41、assigned,not the arrays.)六、数组的初始化六、数组的初始化第56页,讲稿共70张,创作于星期二七、数组的使用七、数组的使用 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;第57页,讲稿共70张,创作于星期二八、多维数组八、多维数组z二维数组二维数组:根据两个索引
42、值的变化,可以访问数组的根据两个索引值的变化,可以访问数组的行或列。行或列。z声明格式:声明格式:n类型说明符类型说明符 数组名数组名 ;n类型说明符类型说明符 数组名;数组名;z二维数组的初始化二维数组的初始化n直接指定初值直接指定初值n用用new操作符操作符第58页,讲稿共70张,创作于星期二z先声明数组再初始化数组先声明数组再初始化数组n数组名数组名=new 类型说明符类型说明符行数行数 ;n数组名数组名=new 类型说明符类型说明符行数行数 列数列数;z例:例:int arra ;/声明二维数组声明二维数组arra=new int34;/初始化二维数组初始化二维数组等价于:等价于:ar
43、ra=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 temperature;temperature=new float10365;例题:气象迷例题:气象迷 程序见程序见WeatherFan.javaint arr=new int 4;是否正确?是否正确?八、多维数组八、多维数组第60页,讲稿共70张,创作
44、于星期二z不同长度的嵌套数组不同长度的嵌套数组 在在Java中,创建嵌套数组时,其中的各个数组的长中,创建嵌套数组时,其中的各个数组的长度可以不同,例如:度可以不同,例如:float samples=new float6;则变量则变量samples引用了一个具有引用了一个具有6个元素的数组,其个元素的数组,其中每个元素可以容纳一个对一维数组的引用,可以单中每个元素可以容纳一个对一维数组的引用,可以单独定义这些数组,例如:独定义这些数组,例如:samples2=new float3;samples5=new float10;八、多维数组八、多维数组第61页,讲稿共70张,创作于星期二v二维数组的
45、各子数组元素的个数可以不同。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八、多维数组八、多维数组第62页,讲稿共70张,创作于星期二z分析如下代码的功能:分析如下代码的功能:float samples=new float6;for(int i=0;isamples.length;i+)samp
46、lesi=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被定义为一个三维数组,也可以说其具有被定义为一个三维数组,也可以说其具有5个元素,每个元素都保存了一个对二维数组的引用,这个元素,每个元素都保存了一个对二维数组的引用,这些二维数组又可以互不相同。些二维数组又可以互不相同。z多维数组的使用方法与二维数组相似。
47、例如:多维数组的使用方法与二维数组相似。例如:long beans=new long2 ;beans0=new long4;beans1=new long2;八、多维数组八、多维数组第64页,讲稿共70张,创作于星期二z字符数组字符数组 char message=new char10;z字符数组的初始化方法如下:字符数组的初始化方法如下:char vowels=a,e,i,o,u;z 也可以通过也可以通过Arrays中的中的fill()方法进行填充,可以进行初方法进行填充,可以进行初始化。例如:始化。例如:Array.fill(vowels,a);八、多维数组八、多维数组第65页,讲稿共70张
48、,创作于星期二66本章小结本章小结v本章主要学习了本章主要学习了JavaJava语言的流程控制语句和语言的流程控制语句和JavaJava语言中数组的使用方法。语言中数组的使用方法。vJavaJava的分支语句主要有两种:分别是的分支语句主要有两种:分别是ifif语句和语句和switchswitch语句。在语句。在JavaJava中,中,ifif语句是一个基本判定语句是一个基本判定工具。它在给定的逻辑表达式为工具。它在给定的逻辑表达式为truetrue时选择执行时选择执行一个语句块。当逻辑表达式为一个语句块。当逻辑表达式为falsefalse时,通过使用时,通过使用elseelse关键字选择执行
49、另一个语句块。当一个条件关键字选择执行另一个语句块。当一个条件表达式的值有多个时,可以使用表达式的值有多个时,可以使用switchswitch语句从多语句从多个固定的选择项中选择。个固定的选择项中选择。第66页,讲稿共70张,创作于星期二67本章小结本章小结vJavaJava的循环控制语句主要有的循环控制语句主要有3 3种:它们分别是适用种:它们分别是适用于循环次数已知的于循环次数已知的forfor循环,循环次数未知的循环,循环次数未知的whilewhile循环和循环和do-whiledo-while循环,其中循环,其中do-whiledo-while循环结循环结构比构比whilewhile循
50、环至少多执行一次语句体。循环至少多执行一次语句体。vJava Java 语言的跳转语句有三种:语言的跳转语句有三种:continuecontinue语句能让语句能让控制流程跳转到包含该语句的循环的下次迭代开控制流程跳转到包含该语句的循环的下次迭代开始处执行;始处执行;breakbreak语句能让控制流程退出循环或者语句能让控制流程退出循环或者是退出它所在的语句块;是退出它所在的语句块;returnreturn语句可以控制流语句可以控制流程返回到调用此方法的语句处。程返回到调用此方法的语句处。第67页,讲稿共70张,创作于星期二68本章小结本章小结JavaJava语言中对数组的介绍分为一维数组和