流程控制和数组

 

一、程序流程控制

1、 判断

三种格式:

If (条件语句)

{

执行语句

}

If (条件语句)

{

执行语句

}

else

{

执行语句

}

 

If (条件语句)

{

执行语句

}

else If (条件语句)

{

执行语句

}

else

{

执行语句

}

 

上述条件判断语句中的执行体,要么是一个花括号括起来的语句块,则这个语句块整体作为条件执行体;要么是以分号作为结束的一行语句,甚至可以是一个空语句。

三目运算符:

(条件语句)? (表达式1):(表达式2)

注意:三目运算符与if else 的区别:if 后面的代码块可以有多条语句,但是三目运算符不支持多条语句!三目运算符的返回结果只能是值,不能是操作语句!

 

2、选择

switch(表达式)

{

case 取值1:

执行语句;

break

case 取值2:

执行语句;

break

...

default:

执行语句;

break

}

注意:

a,switch语句选择的类型只有四种:byteshortint char。不能为字符串(注意与C#的区别)

b,case之间与default没有顺序。先执行第一个case,没有匹配的case执行default

c,结束switch语句的两种情况:遇到break,执行到switch语句结束。

d,如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直到遇到break或者switch结尾结束。

 

 

3、循环

 

while循环

Do while循环

for循环

while(条件表达式)

{

执行语句;

}

do

{

执行语句;

}while(条件表达式);

for(初始化表达式;循环条件表达式;循环后的操作表达式)

{

执行语句;

}

 

注意:do while特点是条件无论是否满足,循环体至少被执行一次。

 

       for里面的连个表达式运行的顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行循环后的操作表达式,接着继续判断循环条件,重复找个过程,直到条件不满足为止。

   whilefor可以互换,区别在于for为了循环而定义的变量在for循环结束就是在内存中释放。而while循环使用的变量在循环结束后还可以继续使用。

      最简单无限循环格式:while(true) , for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件,来控制循环。

 

注意:

afor循环和whiledo while循环的区别:由于whiledo while循环的循环迭代语句紧跟着循环体,因此如果循环体不能完全执行,如果使用continue来结束本次循环,则循环迭代语句不会被执行,但for循环的循环迭代语句并没有和循环体放在一起,因此不管是否使用continue来结束本次循环,循环迭代语句一样会被执行。

bbreak语句不仅可以结束其所在的循环,还可以直接结束外层循环,此时需要在break后面紧跟一个标签(这个标签必须是已经在外层循环之前定义过的),这个标签用来标识一个外层循环,标签就是一个紧跟着英文冒号的标识符。

c、与break一样,continue也可以紧跟一个标签,用于直接结束标签所标识循环的当次循环,开始下一次循环。

dbreakcontinue单独存在的时候,下面都不可以有语句,因为执行不到。

ereturn也可以用来结算一个循环,但与breakcontinue 不同的是,return直接结束整个方法,不管return处于多少层循环之内

 

 

二、函数(即方法)

 

1、定义函数

返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,……)

{

执行语句;

return 返回值;

}

 

2、定义函数的前提

      A、明确该功能运算后的结果;(即明确返回值类型);

      B、明确在实现该功能的过程中是否有未知内容参与运算;(即明确参数列表)

 

3、函数的重载

在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。

存在的原因:方便于阅读,优化了程序设计。

当实现的功能一致,但参数不同时使用。注意:与返回类型无关!!

4、形参长度可变的函数

     如果在定义方法的时,在最后一个形参的后面增加三点(...),则表示该形参可以接受多个参数值,多个参数值被当成数组传入。

注意:一个方法中最多只能包含一个长度可变的形参。

 

三、数组

    1、定义数组

所谓数组就是同一种类型数据的集合。

定义数组的方法:

元素类型[ ]  数组名 = new  元素类型[元素个数或数组长度];

元素类型[ ]  数组名 = {元素,元素,……};

 

数组是固定长度同一类型的容器;

 

:数组和对象都在堆内存当中;

 

2、内存的特点

栈内存的特点:

    存储局部变量,空间不用时自动释放内存。

堆内存的特点:

        a、存储数组和对象,通过new关键字建立的实体都存放在堆内存当中。

    b、实体都有一个内存地址值。

    c、对内存中的变量都有默认初始化值。

    d、垃圾回收机制,Java特有的内存管理机制,在不定时的时间内将垃圾清除释放空间。

3、数组元素的默认初始值

系统按如下规则分配数组元素的初始值:

a、整数类型(byteshortintlong)数组元素的初始值位0

b、浮点类型(floatdouble)数组元素的初始值为0.0

c、字符类型(char)数组元素的初始值为'/u0000'

d、布尔类型(boolean)数组元素的初始值位false

e、应用类型(数组、类、接口)数组元素的初始值为Null

4、其他

   a、所有数组都提供一个length属性; 

   b、数组脚标越界异常、空指针异常:编译的时候不会报错,因为编译的时候只检查基本的语法错误;并不会在内存中生成实体;

注意:Java语言中,数组使用前必须先初始化。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值