java循环结构、函数、数组总结实例
循环结构
Do while 循环:
do
{
执行语句;
}
while(条件语句);
while循环:
while(条件语句)
{
执行语句;
}
条件不满足,循环不会停
While:先判断条件,条件满足才执行循环体;
Do while:先执行一次循环体,再判断条件,条件满足继续执行循环体,条件不满足,跳出循环。(无论条件是否满足,至少执行一次循环体)
for循环:
For(初始化表达式:循环条件表达式:循环后的操作表达式)
{
执行语句;
}
for语句内,当表达式多的情况下用”,”隔开。
l 参与运算时,初始化表达式值执行一次
l 变量在定义时除了有初始化值,还有自己的作用域(即作用范围)。因此,for循环一结束,x在内存中就被释放。
l for和while可以互换(for循环对内存进行优化),如果需要定义循环增量,用for更合适。
l 对于for来讲,如果将用于控制循环在增量定义在for语句中,那么该变量只在for语句内有效,for语句执行完毕,该变量在内存中释放。
当一条语句需要执行很多次的时候,需要用循环结构。
无限循环的最简单表达式 |
for(;;){} |
while(true){} |
循环注意:哪些语句需要参与循环,哪些语句不需要参与循环。
l 累加思想:
原理:通过变量记录循环操作后的结果。通过循环的形式,进行累加动作,累加(变量+循环)
l 计数器思想:
原理:通过一个变量记录住数据的状态变化,也需要通过循环完成。计数器条件根据需求而定。
函数
定义:函数就是定义在类中的具有特定功能的一段独立小程序,也称为方法。
函数的格式:
· 修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,)
{
执行语句;
return 返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该值会返回给调用者。
l 函数的特点: 定义函数可以将功能代码封装,便于对该功能进行复用。
函数只有被调用才能被执行。
函数的出现提高了代码的复用性。
对于没有具体返回值的情况,返回值类型用关键字void表示,那么
该函数的return语句如果在最后一行可以省略不写。
l 注意:函数中只能调用函数,不可以在函数内部定义函数。
定义函数时函数的结果应该返回给调用者,交由调用者处处理。
l 主函数的功能就是调用函数。
l 如何定义一个函数:
1、明确——>既然函数是一个独立的功能,那么该功能的运算结果是什么
2、明确在定 义该功能的过程中是否需要未知的内容参与运算。
l 明确函数的定义:
1、明确函数的返回值类型;(明确要定义的功能最后的结果是什么?)
2、明确函数的参数列表。(明确在定义该功能的过程中,是否需要未知内容参与运算)
语句都定义在函数内。
函数用于存放代码
l 函数重载(overload)
什么时候用重载:
当定义的功能相同时,但参与运算的未知内容不同,这时就定义一个函数名称以表示其工功能,方便阅读。
通过函数列表的不同来区分同名函数。
数组
数组是一种数据结构,用来存储同一类值的集合。通过一个整型下标可以访问数组中的每一个数值。
Int[] a;//大多数程序猿喜欢此风格,因为它将
类型Int[] 与变量名分开了。
或者
Int a[];
以上语句值声明了变量a,并没有将a 初始化为一个真正的数组。
应该使用new运算符创建数组。
Int[] a = newint[100];
这个数组的下标从0~99(不是1~100),一旦
创建了数组,就可以给数组赋值
数组定义格式
Int[] arr = new int [2];
Int arr[] = new int [2];
Int[] arr = new int [] {3,1,4,5};//静态方式
数组操作注意问题:
Int [] arr = new[3];
System.out.println(arr[2]);//默认初始化值为0
获取数组中的元素,通常用遍历(通常用)
求和—累加—>(变量+循环)
给定一个数组,
1、获取数组中的最大值;
既可以初始化为数组中任意一个元素,
也可以初始化为数组中任意一个角标。
2、给数组进行排序。
选择排序,
内循环结束一次,最值出现在头角标位上
冒泡排序(面试中比较常见)
相邻的两个原数进行比较,如果符合条件换位。
排序中最快的排序:希尔排序(一般不需要)
真实开发时排序:
Import java .util.*;
Arrays.sort(数组);
位置置换功能抽取
凡是排序都需要对满足条件的元素进行位置置换,所以可以把这部分相同的代码提取出来,单独封装成一个函数。
Swap
Public static void swap(int[] arr,int a,int b)
置换数组中的元素,和数组没关系。
折半查找
折半查找可以提高效率,但前提是被查找数组必须是有序的。