目录
一.程序流程控制
程序的三种执行顺序:顺序结构、分支结构、循环结构
(一)分支结构
分支结构的语句:if、switch
(1)if语句
if语句作用:根据条件的真或假,来决定执行某段代码
if语句的格式:if(条件)语句;
(2)switch语句
switch语句的作用:是通过比较值是否相等,来决定执行哪条分支。
switch语句的格式:switch(表达式){case 字面量:语句……}
switch分支的执行流程:
- 执行表达式的值,再拿着这个值去与case后的值进行匹配。
- 与哪个case后的值匹配为true就执行哪个case块的代码,遇到break就跳出switch分支。
- 如果全部case后的值与之匹配都是false,则执行default块的代码。
switch的注意事项:
- 表达式类型只能是byte、short、int、char, JDK5开始支持枚举,JDK7开始支持String、不支持double、float、long(注意:在C语言中switch表达式里不能出现字符串,case后也不能出现字符串。)
- case给出的值不允许重复,且只能是字面量,不能是变量。
- 正常使用switch的时候,不要忘记写break,否则会出现穿透现象(往下继续执行语句)。
(二)循环结构
循环结构的语句:for、while、do-while
(1)for语句
for语句的格式:for(初始化语句;循环条件;迭代语句)
循环体语句
for语句执行顺序:第一次先“初始化语句”再判“循环条件”若成立则执行“循环体语句”,然后在执行“迭代语句”再返回执行“循环条件”直至循环条件不成立跳出循环。
(2)while语句
while语句的格式:while(循环条件)
循环体语句
while语句的执行顺序是:先执行“循环条件”若成立执行“循环体”语句然后再返回执行“循环条件”直至循环条件不成立跳出while语句。
(3)do-while语句
do-while语句的格式:
do{
循环体语句
}while(循环条件);
do-while语句的执行顺序是:先执行“循环体语句”再执行“循环条件”如果成立则继续执行“循环体语句”直到循环条件不成立。
注:do-while语句无论如何都会先执行一次循环体语句。
总结:
- for循环 和 while循环(先判断后执行);do...while(先执行后判断)。
- for循环和while循环的执行流程是一模一样的,功能上无区别,for能做的while也能做,反之亦然。
- 使用规范:如果已知循环次数建议使用for循环,如果不清楚要循环多少次建议使用while循环。
(4)死循环
死循环:可以一直执行下去的一种循功,如果没有干预不会停下来。
死循环的写法:
(5)循环嵌套
循环嵌套:形如循环中又包含循环,叫做循环嵌套。
循环嵌套的特点:外部循环每循环一次,内部循环会全部执行完一轮。
(6)break、continue关键字
break:跳出并结束当前所在循环的执行。
continue:用于跳出当前循环的当次执行,直接进入循环的下一次执行。
注意:
break :只能用于结束所在循环,或者结束所在switch分支的执行。
continue :只能在循环中进行使用。
二.数组
数组分为:数组(一维数组)、多维数组(一般用最多的是二维数组)。
数组的概念:数组是一个数据容器,可用来存储一批同类型的数据。
静态数组的概念:指数组的初始化赋值叫做静态数组。
静态数组的定义格式:
数据类型[] 数组名={元素1,元素2 ,元素3,…. };
数据类型[] 数组名 = new 数据类型[]{元素1,元素2 ,元素3..};
数组的访问格式是:数组名[索引](索引相当于C语言的下标)
注:
数组定义格式:数据类型[] 数组名;或数据类型 数组名[];
索引代表数组的元素编号,从0开始计数。
数组还有专门的获取数组长度(元素个数)的方法,其格式如下:
数组名.length
动态数组的格式是:数据类型[] 数组名=new 数据类型[长度]
动态数组:动态初始化数组,只确定数组的类型和存储数据的容量。不事先存入具体的数据。
以下是对数组从键盘赋值的操作:
注:利用创建sc对象进行对键盘输入赋值
注:
在Java中的长度可以是变量,也可以是字面量,其实也C语言动态开辟一样其中格式一定要这样:
二维数组的概念:数组中的每个元素都是一个一维数组,这个数组就是二维数组。
静态初始化格式:
动态初始化:
二维数组的访问:
数组名[行索引][列索引],通过行列访问数据。