Java编程基础(下)

循环


三要素 任务 条件 时间



顺序 分支 循环

注意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参数类型或参数个数,这些同名的方法构成了重载关系.

简单 同一个类中,方法名相同,参数不同

 参数不同:个数不同,类型不同,顺序不同





方法重载好处

不用记忆过多繁重的方法名字
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值