循环
三要素 任务 条件 时间
顺序 分支 循环
注意1程序内部记录一个正确的密码,这里使用int类型整数类型
3小括号和大括号之间不能加分号,如果加了代表IF语句已经结束了后面的代码不属于if,会继续执行打印
if格式 1单个 2双 3多个
执行流程 从上到下
if条件判断大括号,只有一条判断可以省略,但是不推荐
if-else if-else 后else可以省略
case给出的值不允许重复
case后面的值只能是常量不能是变量
表达式:将要匹配的值,只能是byte,short,char,int,枚举和Strimg
case后面跟着的是匹配的值,只能是常量
switch语句
格式 switch(判断语表达式){
case 常量:
表达式;
break;
case 常量:
表达式;
break;
defaul:
break;
}
结尾的default
for语句
格式:for(初始化语句;条件判断;条件控制){
循环体语句;}
执行流程:1先执行初始化语句再执行条件判断T则执行F循环结束
循环体执行结束,执行条件控制,回到第二部继续
1for结构中,在大括号中定义的变量只在每一次循环中有效果,下一次是一个新的
2小括号中,也就是初始化语句中定义的变量在整个循环中有效果
3在for循环中定义的量只在for循环中有效果
4小括号和大括号之间不需要加括号
5初始化语句,条件判断,条件控制都可以不写,不写就是死循环
死循环,停不下来的循环
循环嵌套 在循环中再增加一次循环 外循环行内循环列
\大括号一次小循环一轮
while循环格式
初始化语句;
while(条件判断语句){
循环体语句;
条件控制语句;
}
while循环在外面
do...while循环
格式
do{
循环体语句;
条件控制语句;
}while(条件判断语句);
三种循环区别
for和while先判断后执行
d0...while先执行后判断
for和while区别
for循环中,控制循环的变量,循环结束后不能再访问
while循环中,可以
for 明确循环次数
while循环次数不确定
break即可以被循环消费也可以被switch消费
数组
数组 容器 存放大量同一种数据
数组初始化 开空间赋值
格式
1数据类型[] 数组名 =new 数据类型[]{元素1,元素2,元素3...};简化后 数据类型 []数组名={元素1,元素2...];
int []array
简化格式静态初始化数组,声明数组变量和初始化必须一步完成
2数据类型 数组名[]
int array[]
[:变量存储的是数据类型
I代表数据存储int 类型数组
D : double
@ 分隔符
内存空间16进制地址值
数组元素访问格式
数组名[索引];
编号从0开始,逐渐+1
索引是,数组容器空间的编号
数组的最大索引是数组长度-1
访问一个不存在的索引,代码报错
除了获取还可以赋值
遍历数组
for循环
遍历过程数组名不变,索引变,0开始,到数组长度-1
动态获取数组长度格式: 数组名.length
数组的动态初始化
初始化时只指定数组长度,由系统为数组分配初始值
格式 数据类型[] 数组名= new 数据类型[数组长度]
'\u0000'字符数组动态初始化时的默认值,一般显示为空格
[]数组
区别
1动态 手动指定数组长度,系统给出默认值
2静态 手动指定数组元素,系统根据元素个数给数组长度
动态 初始化不知道数组存储哪些数据
静态 初始化时已经知道存储什么数据
数组内存图
方法区:字节码文件加载时进入的内存,字节码文件中的方法
栈内存:方法弹栈 方法运行所进入的内存 变量地址值
堆内存;new方法出来的东西开辟的产生地址
本地方法栈
寄存器
地址在给到变量
常见两种错误
数组索引越界异常 改索引
空指针异常 去掉赋值null
二维数组
二维数组是一个容器,用来存储一维数组
二维数组静态初始化
格式 数据类型[][] 数组名=new 数据类型[][]{{元素1,元素2},{元素1,元素2}};
简化格式 数据类型[][]数组名={{元素1,元素2},{元素1,元素2}};
二维数组元素访问
格式 数组名[索引][索引];
arr[1][0];
索引
格式 二维数组名[二维数组索引][一维数组索引]
二维数组静态初始化
格式 数据类型[][]数组名=new 数据类型[m][n];
方法与重载
方法特点:不运行不执行
方法格式
public static void 方法名(){
//方法体
}
调用模式
方法名();
show()
方法调用流程 内存图解
方法没有调用,在方法区的字节码文件存放
方法被调用,需要进入到栈内存中进行
先进后出 后进先出
弹夹子弹原理
带参数方法的定义和调用
调用格式 对象名.方法名(参数)
格式 public ststov void 方法名(数据类型 参数名1,数据类型 参数名2)
{
方法体;
}
带参数
形参和实参
形参 形式参数,是在定义方法时说明的参数
实参 实际参数,调用方法时,传入的参数
带返回值方法的定义和调用
根据一个方法产生的结果
方法通用定义格式
public static 返回值类型 方法名(参数){
方法体;
return 数据;
}
定义时明确1参数2返回值类型
调用方法 void直接调用
非void调用推荐变量
方法不调用就不执行
方法编写顺序与执行顺序无关
方法之前是平级关系
方法返回值类型为void表示方法没有返回值,可以省略return不写,写了不能跟具体数据
方法重载
在同一个类中,定义了多个同名的方法,但是每一个方法具有不同的1参数类型或参数个数,这些同名的方法构成了重载关系.
简单 同一个类中,方法名相同,参数不同
参数不同:个数不同,类型不同,顺序不同
方法重载好处
不用记忆过多繁重的方法名字