




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学习目标程序运行流程顺序结构分支结构循环结构break,continue关键字方法数组传智播客教育顺序结构如果代码里没有流程控制,程序是至上而下一行一行执行的,一条语句执行完之后继续执行下一条语句,直到程序的最后。传智播客教育程序流程控制每一种高级语言都会有语句,让计算机做一些更为复杂的事情,只不过表现形式不同。分支结构(条件结构)循环结构控制循环结构传智播客教育条件语句之if三种格式:if(条件表达式){执行语句;}if(条件表达式){执行语句;}else{执行语句;}3.
if(条件表达式){执行语句;}else
if(条件表达式){执行语句;}……else{执行语句;}传智播客教育条件语句之switch格式:switch(表达式){case
表达式可能的结果值1:执行语句;break;case
表达式可能的结果值2:执行语句;break;...default:执行语句;break;//一般不写}传智播客教育switch语句特点switch语句选择的类型只有四种:byte、short、int、char。(java5之前)。还支持
enum(jdk5),
String(jdk7);case之间与default没有顺序。先执行第一个case,都没有匹配的case值执行default。结束switch语句的两种情况:遇到break,switch语句执行结束。如果匹配的case或者default没有对应的break,那么程序会从第一次匹配的case语句开始继续向下执行,运行可以执行的语句,直到遇到break或者switch结束为止。传智播客教育循环结构话说 师徒四人还在21世纪继续闯关,一天:☺☻☺☻师徒四人来到数字王国:第一关:求100以内正整数和?于是, 算
1到
25的和;算26到50的和;八戒算51到75的和;沙僧算76到100的和。第二关:求1000以内正整数和?于是, 算
1
到
250的和; 算251到500的和;八戒算501到750的和;沙僧算751到1000的和。第三关:求10000以内正整数和?于是, 算
1
到
2500的和;
算2501到5000的和;八戒算5001到7500的和;沙僧算7501到10000的和。第四关:求100000以内正整数和?
ブプヘベペホボポ。。。。。传智播客教育三大循环结构用于处理需要重复执行的操作;根据判断条件的成立与否,决定程序段落的执行次数,而这个程序段落 称为循环体;while:事先不需要知道循环执行多少次;do while:同上,只是至少要执行一次(先做,后判断);for:需要知道循环次数;传智播客教育循环结构(while
&
do
while)while语句格式:while(条件表达式值为true){执行语句;}do
while语句格式:do{执行语句;}while(条件表达式值为true);do
while特点是无论条件是否满足,循环体至少被执行一次。循环里的条件表达式不能直接写false或直接写结果是false的表达式,不过可以使用变量来传递false值;传智播客教育循环结构(for)格式:for(初始化表达式(1);循环条件表达式(2);循环后的操作表达式(3)){执行语句;(4)}执行顺序:(1)→(2)→(4)→(3)→(2)→(4)→(3)注:1, for里面的3个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。2, while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就在内存中 。而while循环使用的变量在循环结束后还可以继续使用。3, 最简单无限循环格式:while(true),for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。传智播客教育循环用三种循环分别求出:1!+ 2!+...+10!阶乘和。求出100以内3的倍数的数字和个数;求出100以内前5个3的倍数的数字;100 到200之间所有奇数的和;传智播客教育嵌套循环嵌套循环:循环里套循环假设外循环的循环次数是m次,内循环的循环次数是n次,那么内层循环的循环次数需要m*
n次。传智播客教育流程控制1break语句、
continue语句;break:终止该层循环;
continue:跳过该层循环注:①:若这两个语句离开应用范围,存在是没有意义的。②:这个两个语句后面都能有语句,因为执行不到。③:continue语句是跳过本次循环,继续下次循环。④:
的出现,可以让这两个语句作用于指定的循环。传智播客教育流程控制2使用循环
;Ø
在多层嵌套循环中,终止/跳过Ø
break<
>或continue<标记的外层循环的执行;>;使用return结束循环语句所在的方法;传智播客教育方法(Method)方法含义和定义格式方法重载及使用使用return结束一个方法的语言:方法等价于函数传智播客教育方法(Method)方法?一段可重复使用的代码段;程序中完成独立功能的一段代码的集合。Java中方法的格式:[修饰符]返回值类型方法名([参数类型形式参数1,参数类型形式参数2,……]){执行语句; [return
返回值;]}参数列表(参数的类型,参数的个数,参数的顺序)传智播客教育方法(Method)的形参列表形式参数:在方法被调用时用于接收外界输入的数据。实参:调用方法时实际传给方法的数据。返回值:方法在执行完毕后返还给调用它的环境的数据。返回值类型:事先约定的返回值的数据类型,如无返回值,必须给出返回类型
void。方法签名:方法名和方法的参数列表(能区别方法);java语言中调用方法:对象名.方法名(实参列表)。实参的数目、数据类型和次序必须和所调用方法匹配。return语句终止方法的运行并指定要返回的数据。传智播客教育方法特点它可以实现独立的功能;必须定义在类里面;它只有被调用才会执行;它可以被重复使用;方法结束后方法里的对象失去;如何定义一个功能,并通过方法体现出来:①明确该功能运算后的结果.明确返回值类型;②明确在实现该功能过程中是否有未知内容参与运算,确定参数列表;传智播客教育局部变量的初始化和内存中的运行机制局部变量必须先初始化再使用,这里的初始化其实就是在为其分配内存;局部变量总是保存在其所在方法的栈内存里面,若:基本类型:变量的值直接保存在变量的内存中;类型:存放该变量实际
对象或数组的地址;栈里面的变量无须系统去
回收,栈内存的变量会随着方法或代码块的运行结束而结束;传智播客教育编程规范说明方法名不能使用关键字和保留字;回忆类名的定义规范:单词的首字母大写,采用驼峰式;由有实际意义的名词或名词短语构成:StudentScore,如:Student,方法名规范:第一个单词的首字母小写,采用驼峰式;由有实际意义的动词或动词短语:如:playGame,grow传智播客教育方法练习假设在某个描述三人 的类中有一个int的变量player。写一个返回为String值类型的方法getPlayerName。player
的值分别是1,2,3或者其他值时,该方法返回“大明”,“二明”,“ ”,“我没有这个孩子”。写一个发 功能的方法传智播客教育方法的重载(Overload)概念:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型或参数顺序不同即可。存在的原因:了一个对象的同一类方法由于参数不同所造成的差异。特点:与返回值类型无关,只看参数列表。法则:两同,一不同:同一个类中方法名相同;参数列表不同:(参数个数,参数的类型,参数顺序)。传智播客教育传智播客教育int
show(int
x,
char
y,boolean
z){}//不是判断方法重载void
show(int
a,char
b,boolean
c){}a.b.c.d.void
show(char
b,
int
a,
boolean
c){}
//是int
show(boolean
a,char
c
,int
b){}
//是void
show(int
a,char
b,double
c){} //是void
show(int
x,char
y,boolean
z){}
//不是e.//是
show(int
x,double
y){}数组数组的 、初始化和内存分配数组常见操作传智播客教育数组概念:同一种类型数据的集合;数组的好处:数组里的每个元素都有依次递增,方便操作这些元素;,从0开始;使用Java数组:必须先 数组,再给该数组分配内存;传智播客教育一维数组的age151617☻java语言
数组的时候不能指定其长度(元素的个数)int
a[5];
//一维数组:可以理解为一列多行、类型相同的数据,其中每个数据被称为数组元素;一维数组的
方式:type
varName[];
或
type[]
varName;(
)int[]
age; String[]
name;double[]
weight;可以把
type[]double
height[];是一种数据类型传智播客教育一维数组的初始化Java中的数组必先初始化才可以使用,所谓初始化就是为数组的数组元素分配内存,并为每个数组元素赋值;数组初始化的两种方式:静态初始化:初始化时由
自己指定每个数组元素的初始值,由系统决定需要的数组长度;格式:数组名=new数组类型[]{元素1,元素2,元素3...元素n};简化语法:数组名={元素1,元素2,元素3...元素n};动态初始化:初始化时由 指定数组的长度,由系统为数组元素分配初始值;格式:数组名=new数组类型[数组长度];☻不能静态和动态初始化同时使用:也就是说不能同时指定数组的长度和元素;数组的长度一旦确定,就不能改变,也就数组是定长的;传智播客教育使用数组Java语言的数组索引是从0开始的,也就是说数组里的第一个元素的索引是0,第二个元素的索引是1,依次可以类推。常见操作:给数组元素赋值数组名[索引]=数组类型的值;//length是数组的属性数组元素数组类型变量=数组名[索引];得到数组的长度int
len=数组名.length;遍历数组数组元素的索引范围?传智播客教育数组操作常见问题数组脚标越界异常(ArrayIndexOutOfBoundsException)空
异常(NullPointerException)//操作 类型的时候int[]arr=new
int[5];System.out.println(arr[5]);//有脚标为5的元素吗?String[]
name
=
{"",""};System.out.prinltn(name[2]);name[2].length();
//length方法是String类里面的方法传智播客教育数组在内存中的分析1int[]
age;age
=
new
int[3];for(int
i=0;i<age.length;i++){age[i]
=
i+1;}栈堆age
栈
age堆000
栈
age堆123传智播客教育数组在内存中的分析2int[]
arr1=
new
int[4];int[]
arr2=
{1,2,3};System.out.println("arr1长度="+arr1.length);System.out.println("arr2长度="+arr2.length);arr1=arr2;//???System.out.println("arr1长度="+arr1.length);栈
arr1arr2堆000
01
23栈arr1arr2堆000
0123×失去,等待回收器(GC)来回收传智播客教育内存特点开辟不同内存空间是为了对每一片内存中的数据都有不同的处理方式,提高效率。栈内存的特点:局部变量,空间不用时自动 内存。堆内存的特点:1.数组和对象,通过new关键字建立的实体都存放在堆内存当中。实体都有一个内存地址值。堆内存中的变量都有默认初始化值。回收机制,Java特有的内存管理机制,在不定时的时间内将
清除
空间。传智播客教育数组中的数组二维数组:(其实是一个一维数组,它的每一个元素又是一个一维数组),可以看做是一张表格Ø
在数组中再存放数组,外层数组看做是行,内层数组看做列;Ø
动态初始化Ø
静态初始化Will17男iWiller16女两行三列的表格:new
类型[2][3];int[][]
i3=new
int[][3];//不允许没分配空间而先给低维分配空间传智播客教育二维数组的初始化动态初始化int[
][
]arr
=
new
int[3][2];定义了一个二维数组,其中有3个一维数组,每一个一维数组中有2个元素静态初始化int[
][
]int[
][
]arr
=
new
int[][]{{1,2},{3,4},{5,6}};arr
=
{{1,2},{3,4},{5,6}};传智播客教育二维数组的使用int[]
[] arr
=
{{3,1,5},{2,6},{8}};
元素值5的表示方式为:arr[0][2]=5;
第二个一维数组的长度表示方式:int
len=arr[1].length;
对二维数组的遍历使用for的嵌套循环。
对于其他
数组,几维就用几层for嵌套,但通常情况数组最多用到三维,因为效率已经大大降低了,也不方便于阅读。for(int[]
is
:
arr)
{for(int
i
:
is)
{System.out.println(i);}}传智播客教育方法传递机制Java的方法是不能独立存在的,调用方法必须使用类或对象。Java方法的参数传递机制是什么呢?传递/值传递:参数进行传递时都会先在自己方法栈中生成一个实际参数的副本,然后该副本拥有实际参数的堆内存地址,使用结束后副本被
,而实际参数本身不会受到任何影响;传智播客教育方法传递机制-基本类型参数main方法栈swap方法栈122412
a24
b交换传智播客教育方法传递机制-类型参数arrmain方法栈arrswap方法栈69ab交换拷贝传智播客教育操作数组的工具类-Arraysstatic
int
binarySearch(type[]
a,
type
key)使用二分搜索法来搜索key元素在数组中的索引;若a数组不包括key,返回负数。(该方法必须已按升序排列后调用)。static
int
binarySearch(type[]
a,
int
fromIndex,
int
toIndex,type
key)使用二分搜索法来搜索key元素在数组中从fromIndex到toIndex的索引;若a数组不包括key,返回负数。(该方法必须已按升序排列后调用)。static
boolean[]
copyOf(type[]
original,
int
newLength)指定的数组见下面备注static
byte[]
copyOfRange(type[]
original,
int
from,
int
to)将数组的指定范围
到一个新数组。传智播客教育操作数组的工具类-Arraysstatic
boolean
equals(type[]
a,
type[]
a2)如果两个数组长度相等和元素一一相等,则返回truestaticvoidfill(type[]a,typeval)将a数组所有元素都赋为val。static
void
fill(type[]
a,
int
fromIndex,
int
toIndex,
type
val)将a数组从formIndex到tiondex索引之间的元素都赋为val。static
void
sort(type[]
a)
//sort(int[]
arr)对指定的数组按数字升序进行排序。staticvoidsort(type[]a,intfromIndex,inttoIndex)对指定数组的从formIndex到tiondex索引之间的元素按数字升序进行排序。static
String
toString(type[]
a)
返回指定数组内容的字符串表示形式。多个数组元 间用英文逗号或空格隔开。传智播客教育操作数组的工具类-System使用java.lang.System类的静态方法可以用于数组src从第srcPos项元素开始
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025公司项目部管理人员安全培训考试试题及答案 完整
- 2025年厂里厂里安全培训考试试题【含答案】
- 2025年岗位安全培训考试试题含答案(满分必刷)
- 2025通信设备采购合同范本
- 2025工业用地转让代理合同
- 2025临时电源租赁合同
- 2025授权投资协议合同范本
- 2025商场柜台租赁合同模板
- 2025建筑工程施工合同示范本
- 2025电子产品销售合同模板大全
- 安徽省森林抚育技术导则
- 楼宇保洁员工作流程和标准
- 南京信息工程大学《数理统计》2021-2022学年第一学期期末试卷
- 机场跑道沥青混凝土施工工艺及方案
- DB35T 1844-2019 高速公路边坡工程监测技术规程
- 医院感染相关法律法规课件
- 个人理财-形考作业3(第6-7章)-国开(ZJ)-参考资料
- 2024年上海客运驾驶员从业资格证
- 人教版小学数学五年级下册《分数加减混合运算》教学设计
- 环保材料使用管理规定
- 化学反应釜操作技能考核试卷
评论
0/150
提交评论