博客:------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
java基础语法(下)
一:循环结构的分类:
(重点)for循环
(理解)while循环
(了解)do..while循环
(重点)for循环:
for循环语句格式:
for(初始化语句;判断条件语句;控制条件语句) {
循环体语句;
}
执行流程
A:执行初始化语句
B:执行判断条件语句,看其结果是true还是false
如果是false,循环结束。
如果是true,继续执行。
C:执行循环体语句
D:执行控制条件语句
E:回到B继续
(理解)while循环
while循环语句格式:
基本格式
while(判断条件语句) {
循环体语句;
}
扩展格式
初始化语句;
while(判断条件语句) {
循环体语句;
控制条件语句;
}
执行流程
A:执行初始化语句
B:执行判断条件语句,看其结果是true还是false
如果是false,循环结束。
如果是true,继续执行。
C:执行循环体语句
D:执行控制条件语句
E:回到B继续
(了解)do..while循环
do…while循环语句格式:
基本格式
do {
循环体语句;
}while((判断条件语句);
扩展格式
初始化语句;
do {
循环体语句;
控制条件语句;
} while(判断条件语句);
三种循环的区别:
区别:
do…while循环至少会执行一次循环体
for循环和while循环只有在条件成立的时候才会去执行循环体
注意事项:
如果循环结束后,要需要使用初始化变量,请使用whlie,否则使用for
推荐使用for循环,因为for循环执行完后后,初始化变量就会在内存中消失了。提高内存效率
循环嵌套:
循环中包含另一个循环
for(){
for(){
}
}
二:控制跳转语句:
break: 结束当前循环,程序执行循环后面的代码
continue:结束本次循环,继续下一次循环
return: 结束当前方法,return后面的语句不执行
三:(重点)方法:
方法就是完成特定功能的代码块
在很多语言里面都有函数的定义
函数在Java中被称为方法
格式:
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2…) {
方法体;
return 返回值;
}
方法格式解释
修饰符 比较多,后面会详细介绍。目前public static
返回值类型 用于限定返回值的数据类型
方法名 一个名称,为了方便我们调用方法
参数类型 限定调用方法时传入参数的数据类型
参数名 是一个变量,接收调用方法时传入的参数
方法体 完成功能的代码
return 结束方法以及返回方法指定类型的值
返回值 程序被return带回的结果,返回给调用者
注意:
1:方法不调用,不执行
2:方法与方法是平级关系,不能嵌套定义
3:方法定义的时候参数之间用逗号隔开
4: 方法调用的时候不用在传递数据类型
5: 如果方法有明确的返回值,一定要有return带回一个值
6: 如果方法没有明确返回值,请使用void来表示方法返回类型
void空类型
定义一个变量的时候,不能定义void类型变量
7: 如果方法的返回值是void类型,那么该方法的return语句可以省略
要是想加的话, 请使用 return ;
如何写一个方法呢?两个明确
返回值类型 明确功能结果的数据类型
参数列表 明确有几个参数,以及参数的类型
四:(重点)方法重载
概念:在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可
方法重载特点
与返回值类型无关,与参数名无关,只看方法名和参数列表
在调用时,JVM虚拟机通过参数列表的不同来区分同名方法
五:(掌握)数组:
概念:数组是存储同一种数据类型多个元素的容器
数组就是一个框,里面可以存储多个相同类型的元素
如何访问数组中的元素呢?
可以通过数组名下标的方式访问
格式: 数组名[索引]
数组的格式1:
数据类型[] 数组名;
数据类型 数组名[];
格式:数据类型[] 数组名 = new 数据类型[数组长度];
数组的格式2:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};
数组常见问题:
数组索引越界
ArrayIndexOutOfBoundsException
访问到了数组中的不存在的索引时发生。
空指针异常
NullPointerException
数组引用没有指向实体,却在操作实体中的元素时。
六:重点) Java中的参数传递
实际参数:调用方法时,使用的参数就是实际参数,如下面的a,b
getMax(a,b);
int[] arr = {1,2,3};
change(arr);
形式参数:定义方法时,参数列表中的参数,如下面的x,y
public static int getMax(int x, int y){
x = 200;
y = 100;
}
public static void change(int[] arr){
for (int i=0; i<arr.length; i++ ) {
arr[i] *= 2;
}
}
结论:
如果调用方法时,使用的参数是基本数据类型的值
那么,形式参数(x,y)的改变 对 实际参数(a,b)没有影响
如果调用方法时,使用的参数是引用数据类型的值
七:(理解)二维数组
概念:其实就是一个元素为一维数组的数组。
大框里 存放着多个小框,每个小框中存放着多个苹果
格式1:
数据类型[][] 变量名 = new 数据类型[m][n];
m表示这个二维数组有多少个一维数组
n表示每一个一维数组的元素个数
int[][] arr = new int[3][2];
格式2:
数据类型[][] 变量名 = new 数据类型[m][];
m表示这个二维数组有多少个一维数组
这一次没有直接给出一维数组的元素个数,可以动态的给出。
int[][] arr = new int[3][];
arr[0] = new int[2];
arr[1] = new int[3]
arr[2] = new int[1];
格式3:
数据类型[][] 变量名 = new 数据类型[][]{{元素…},{元素…},{元素…}};
简化版格式:
数据类型[][] 变量名 = {{元素…},{元素…},{元素…}};
int[][] arr = {{1,2,3},{4,6},{6}};