循环结构
- 循环结构特点(必须分清条件和操作)
a) 循环条件(循环的次数,要求等)
b) 循环操作(循环的结果,输出的数据等)
c) 都有4个必不可少的部分。 - 循环语句(重复做同一件事)
a) 循环语句
i. do-while(不知道循环次数)
ii. while(不知道循环次数)
iii. for(知道循环次数)
b) (while循环)(条件在前面用,先判断再执行,不符合条件一次都不会执行)
i. While循环语法;
ii. 定义变量(又称循环变量,不可少)
iii. 在定义的变量前加while(把循环条件写在括号里)变量后面加花括号(花括号里写循环操作)
iv. 在花括号里写上a++为活循环
c) While字符对比循环
i. 定义变量为字符变量
ii. While后面加上变量比较(变量比较写在括号里,且用输入的字符与字符变量对比)
iii. 输出对比合格的情况或对比不合格的情况
d) do-while(先执行在判断,最少执行一次)
i. 语法;do{ 执行的的操作 }whlie( 循环的条件 );
ii. do 写在前面后面加花括号,花括号里写循环操作
iii. 在do的循环操作后写while(循环条件);(必须加上分号)
e) For循环语句(循环次数固定,比while跟简洁,先判断执行)
i. 语法
ii. For(定义变量并赋值;判断条件;变量更新的变量)
iii. 执行顺序;定义变量并赋值——判断条件——执行操作——变量更新的变量——判断条件(循环到条件不符合要求)
iv. For括号里面的元素可以拆出来,但分号不能少,i条件也不能少(或者什么也不写),否则为死循环
v. For循环高级(多个循环条件) - For(定义变量并赋值(可以为多个,但定义的类型只能有一个);判断条件;变量更新的变量(可以为多个))
- 多重循环
a) While,do-while,for都可以进行多次循环
b) 要分请层次关系 - 变量作用域(管理的范围)
a) 提高作用域(在外级中定义变量,不赋值){循环操作内容}
第五章;跳转语句
Break语句 - Break语句,在循环中则退出循环,不执行后面的循环语句,还会执行下面的程序语句但,在switch中跳出选择。
- Break在位置哪里就跳出那个循环或switch语句
- 语法
- Boolean类型;定义了Boolean类型后通过对比可以选择是否执行语句
Boolean (变量名)=(true/false);
For ( ;;){
If(条件){
(Boolean变量名)=false(改变定义的Boolean变量值)
当if条件满足时退出循环语句,否则继续执行循环
}
}
Continue 语句
-
Continue语句(只能用于循环语句中,跳过循环操作中的剩余语句,(只跳过本次循环),当条件再次满足经过continue时再次使用)
-
continue位置在哪就跳出那个循环(后面如果还有循环(或其他语句)语句的话则还会执行后面的循环语句)
-
语法
return语句 -
跳出一个方法(回到方法的开始的地方)
数组 -
数组(数组有栈和堆得划分)
-
数组开始为空,必须赋值
-
数组的基本要素
a) 标识符(数组的名称等同于变量名)
b) 数组元素(等同于变量值,有若干个元素)
c) 元素下标(每一个元素只有一个下标,从0开始;下标=长度-1)
d) 元素类型数组里的元素只能是同一类型
e) 长度;数组里一共能存放的元素的数量(固定的,声明多少为多少;)
f) -
写法;数组的标识符(数组的名称)【(数组元素的下标)】
-
语法顺序
a) 声明数组(给数组分类)(不声明数组的长度)
i.
ii. 声明变量的语法
-
写在数组类型的后面
-
写在数组名的后面
b) 分配空间(给数组一个空间,声明元素的个数)
i. 只有在给数组分配空间是才能声明长度,其余情况下不能声明
ii. 语法;数组名称=new 数据类型【数据的大小】
iii. 每一个空间里都有一个默认值且不一样(int类型为0,string类型为null(空),默认值根据数据的类型进行改变)
c) 赋值(给元素赋值,每个元素都要赋值,下标从0开始)
i. 赋值方法 -
一边声明数组名一边赋值(不能声明数组的长度,元素少,且知道元素的情况下使用)
-
一边声明数组名和数组类型一边赋值(不能声明数组的长度,元素少,且知道元素的情况下使用)
-
使用循环进行赋值
-
数组的长度;数组名length(可用于循环中来改变循环的条件)即
d) 处理数据
i. For高级(增强型for,foreach)使用在知道元素的数或在数组中有数的情况下
ii. 语法
int;代表数组的类型 score;for循环的变量名 scores;数组的名称
iii. :后面代表一个数组或集合
iv.
6. 声明数组与分配空间一起书写
-
声明数组与赋值一起写必须写在同一句中,不能换行
-
数组与内存
a) 栈和堆(人为的定义划分区域)
i. 定义的数组名放在栈中(定义的变量与变量值都放在栈中)
ii. 数组的值放在堆中 -
数组语法书写
-
数组排序
a) 冒泡排序(冒泡就是每一轮比出来的最大值称之为冒泡,依次出来)(可用Arrays.sort(数组名))
i. 顺序;每次比较相邻的俩个数,符合条件进行对换
ii. 规律;比较轮数为数组的长度-1,比较的次数为长度-1-轮数
iii. 语法
-
插入数值
a) 定义数组的长度时留出空间
b) 寻找位置
c) 进行移位 -
字符串的比较方法
二维数组 -
Arrays sort升序排序(不同于冒泡排序,字符也可以进行排序)
-
数组排序的语法书写
-
使用arrays对数组进行排序(arrays .sort(数组名称))
a) Arrays为一个类
b) Sort为方法(功能块,可以对数组进行升序排序) -
Arrays常用的方法
a) Boolean equals ( 数组一,数组二)比较数组是否相等(数组的长度,类型,数组的元素的值都相同时才相等,返回结果为布尔类型)
i. 语法书写
b) Sort(数组名)(对这个数组进行升序排序)
i. 语法书写(降序把数组中的数字反向输出)
c) String toString(数组名)(把数组里的数字当成字符来输出)
i. 语法书写(输出的结果为一个字符串,数组里的数字被大括号包裹,用逗号隔开)
d) Void fill (数组名,想要赋予的值)(把要赋予的值都赋值个这个数组,数组里的值都为同一个数)
i. 语法书写(数组里的值都为赋予的新值)
e) Copyof (数组名,数组的长度)(把数组复制到另一个长度的数组中)
i. 语法书写(复制的结果也为一个数组,需要定义一个新的数组,长度大于复制的数组时其余为数组的初始值,长度小于复制的数组时多的数给消除)
f) int binarySearch(数组名,数组里有的数)(查找在这个数组中的这个数的下标是多少,必须在排好序的情况下进行查找,如果没有排好序那么返回的是一个负值)
i. 语法书写(需要用一个变量来接受,返回的值是下标的值)
- 一维数组;带中括号的为一维数组(常用为一维数组和二维数组)
- 二维数组;带两中括号(以此类推,括号越多,维数越大)
a) 定义;存放数组的数组称之为二维数组(即数组套数组)
b) 写法
c) 语法
i. int scores [ ][ ]=new int [5][50];
- scores 为二维数组的数组名 、int为二维数组的数组类型、[5]中的数字5为二维数组的长度、[50]为二维数组里每一个空间能存的数组长度,二维数组在一维数组的外层(在二维数组的每一个空间(长度为5)中在放一个数组(长度为5))
- 定义二维数组的长度的时候必须定义二维数组的长度,一维数组的的长度可不写(即int scores [ ][ ]=new int [5][ ])
d) 二维数组中的数的写法
i. 外层的数组为;数组名[下标(下标=长度-1)]
ii. 里层的数组为;外层数组名[外层数组的下标(下标=外层数组长度-1)][里层数组的下标(下标=里层数组长度-1)]
e) 赋值;int [ ] [ ] score =new int [ ][ ]{{899,90},{890,09,90}}或者 int [ ] [ ] sorec =[ ] [ ] { {78,90} ,{90,87} }