五、程序流程控制(语句)
5.1、判断结构
If语句
If语句的三种结构:
1).if(条件表达式)
{
执行语句;
}
2) if(条件表达式)
{
执行语句;
}
else
{
执行语句;
}
3) if(条件表达式)
{
执行语句;
}
else if(条件表达式)
{
执行语句;
}
......
else
{
执行语句;
}
If else结构简写格式: 变量 = (条件表达式)?表达式1:表达式2
三元运算符好处:可以简化if else 代码; 弊端:因为是一个运算符,所以运算完必须要有一个结果。
5.2、选择结构
格式:switch(表达式)
{
case 取值1:
执行语句;
break;
case 取值2:
执行语句;
break;
.
.
.
default:
执行语句;
break;
}
switch语句特点:
1). switch语句选择的类型只有四种:byte、short、int、char;
2). case之间与default没哟顺序,先执行第一个case,没有匹配的case执行default;
3). 结束switch语句有两种情况:遇到break,执行到switch语句结束;
4). 如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行到可以执行的语句,直到遇到break或者switch结尾结束。
示例:
运行结果:A B C
由于default语句和case 1语句最后没有添加break;当switch语句没有找到对应的条件后,执行default语句输出:A,执行default语句后,不再判断条件而是直接继续执行,知道遇到break后退出,所以最后运行结果为:A B C.
If和switch语句有些相像,怎样选择呢?
如果判断的具体数值不多而且符合byte,short,int,char这四种类型,虽然两
语句都可以用,但建议使用switch语句,因为高效;其他情况,对区间判断,对结果为boolean类型判断,使用if,if使用范围更广。
5.3、循环结构
代表语句:while , do while, for;
1).while语句格式:
while(条件表达式)
{
执行语句;
}
2).do while语句格式:
do
{
执行语句;
}
while (条件表达式);
do while的特点是:无论条件是否满足,循环体至少被执行一次。
3).for语句格式:
for(初始化表达式;循环条件表达式;循环后的操作表达式)
{
执行语句;
}
注:
A、for里面的连个表达式的执行顺序,初始化表达式只读一次,判断循环条件,为真就执行循环体,然后再执行操作后的表达式,接着继续判断循环条件,重复整个过程,知道条件不满足为止;
B、while与for可以互换,区别在于for为了循环而定义的变量在for循环结束就在内存中释放。而while循环使用的变量在循环结束后还可以继续使用;
C、最简单无限循环格式:while(true),for(;;),无限循环存在的原因是并不知道循环多少次,而是根据某些条件来控制循环。
5.4、其他流程控制语句
Break(跳出)&continue(继续)
Break语句使用范围:选择结构和循环结构
Continue语句使用范围:循环结构。
注:
A、这两个语句离开应用范围存在就没有意义;
B、这两个语句单独存在,其下面不能有语句,因为执行不到;
C、continue语句是结束本次循环开始下次循环;
D 、标号的出现,可以让这两个语句作用于指定的范围。六、数组
6.1、数组的定义
数组:同一种类型数据的集合。其实数组就是一个容器。
使用数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
6.2、数组定义的格式
格式一:元素类型 [] 数组名 = new 元素类型[元素个数或者数组长度]
例:int [] arr = new arr[5];
格式二:元素类型 [] 数组名 = new元素类型[]{元素1,元素2,…};
例:int [] arr = new arr[]{2,5,8,1,4};
int [] arr ={2,5,8,1,4};
6.3、数组的应用
1)、定义一个数组,并打印出数组中的元素;
2)、获取数组中的最大值
3)、数组排序
A.选择排序:
B.冒泡排序:
6.3、二维数组
二维数组的定义格式:
格式1:int[][] arr = new int[3][2];
解释:定义了一个名称为arr的二维数组,该二维数组中有3个一维数组,每一个一维数组中有两个元素,以为数组的名称分别为:arr[0]、arr[1]、arr[2]。
给第一个一维数组1角标赋值为25写法:arr[0][1] = 25.
格式2:int[][] arr = new int[3][];
解释:二维数组中有3个一维数组,每一个数组都是默认初始化值null;
可以对这三个一维数组分别初始化:
arr[0] = new int[3];
arr[1] = new int[2];
arr[2] = new int[1];
例:int[] x,y[] -->int[] x;
int[] y[]; x一维数组,y二维数组;