1.程序流程控制-分支
(1)if(条件表达式){语句体;}
(2)if(条件表达式){语句体;}
else {语句体;}
(3)if(条件表达式){语句体;}
else if(条件表达式){语句体;}
...
else {语句体;}
(4)switch(表达式){
case 值1:
执行代码;
break;
case 值2:
执行代码;
break;
...
defult:
执行代码;
}
2.程序流程控制-循环
(1)
for
while
do while(一定会执行一次循环体语句,再判断循环条件)
(2)
break;//跳出并结束当前所在循环的执行
continue;//跳出当前循环的当次执行,进入下一次循环
3.数组
引用类型,里面存放的是地址。
(1)静态初始化数组
数据类型 数组名 = new 数据类型 [ ] {元素1,元素2,...元素n};
(简写)数据类型 数组名 = {元素1,元素2,...元素n};
int [] ages={12,24,36}
内存原理:
在栈内存中为数组变量开辟一个区域;
在堆内存中new出一块连续区域,存放数组对象;
把这块连续区域的首地址交给数组变量并存储;
数组变量根据里面存放的地址访问数组对象的首地址,从而可以访问里面的数据。
(2)动态初始化数组
数据类型 [ ] 数组名=new 数据类型 [长度];
int [ ] arr=new int[3];
数组对象默认值为0。
(3)数组的访问
数组名称[索引];
与c++不同,数组传参到方法中时,数组长度(arr.length)可以直接使用,不用单独把长度写入参数中;
package wryyyyy;
public class test
{
public static void main(String[] args)
{
int[] ages={12,23,14,34,25}
int max=getmax(ages)
System.out.println("最大值:"+max)
}
public static int getmax(int[] arr)
{
int max =arr[0];
for(int i=1;i<arr.length;i++)
{
if(arr[i]>max)
max=arr[i];
}
return max;
}
}
4.方法
位置:本类中,main方法外
格式:修饰符 返回类型 名称(形参表){ }
(与c++函数不同的是,方法不用先声明在调用)
public static int sum(int a,int b)
{
int c=a+b;
return c;
}
返回值:只能返回一个值,且return后方法调用结束,return语句后面代码无效。
方法的重载:只区别于形参的个数,类型,顺序;
内存原理:
方法没有被调用时,在方法区的字节码文件中存放(包括main方法的代码);
执行时,先把mian方法提到栈里面,遇到某个方法的调用时,把这个方法提到栈里面;
main方法中的形参被传到方法中去,方法开辟一块空间存形参数据,方法执行;
返回值返回到方法调用中赋给变量;
main方法执行完成,栈内存中数据退出。