一 控制流程
Java语句的控制结构主要有顺序结构、选择结构、循环结构和转移。
1. 顺序结构
按照语句的先后顺序执行,顺序结构是最基本的控制结构。
2. 选择结构
在若干路径中有条件的选择执行不同的语句
(1) if语句
根据条件表达式的值选择执行。
If(条件表达式){
语句块1
}
else{
语句块2
}
a:当条件为ture时,执行语句块1,当条件为false时,执行语句块2.
b:如果语句块2为空时,可以省略掉else语句。
c:如果语句块1和语句块2只有一个表达式,花括号则可以省略不写。
d:else不能单独使用,else和他最靠近的if语句配对。
(2)if elseif else 多选择语句
If(表达式1){
语句块1;
}
else if(表达式2){
语句块2;
}
……
else{
语句块n
}
a:如果任何一个表达式的值为真,对应中的语句块被执行。
b:else 可以处理所有条件都不满足时。
(3)switch选择语句
根据表达式的值,决定执行哪一个选项的语句。
Switch(整型或字符型表达式){
case 标签1:
语句块1
break;
case 标签2:
语句块2
break;
……
default:
语句块n
break;
}
a:先计算整型或字符型选项表达式的值,然后跟case语句相匹配。匹配到case则执行该case下面的语句。一直执行到brake转移语句时,结束。
B: 如果没有匹配到则执行default里面的语句。
C:如果没有brake语句则会一直往下执行。所以一般不推荐使用此语句。
D:case标签可以是:四种基本类型(byte、short、int、char)或他们包装类的常量表达式。Java1.5版本枚举常量。Java 7版本后case标签还可以是字符串字常量。
If语句和switch语句的区别?
a:if语句可以实现程序中所有的条件,而switch语句适合做一组相等变量的判断
b:switch语句的执行速度比if语句块。
c:如果纯碎选择数字或字符,就选择switch语句。
3 循环结构
(1) for语句
for语句循环结构也成为计数器循环语句。
for(循环表达式;终止表达式;更新表达式){
循环体;
}
A:初始化表达式设置for循环的初始条件。一般是一个赋值表达式。
B:终止条件表达式检测循环条件是否满足。满足则继续执行否则终止。一般是布尔型表达式
C:更新表达式一般用于更新计数器的值,一般是一个自增减或算术表达式。
(2) for循环嵌套
for循环可以是一个语句块也可以包含一个或多个for循环。
例如:
for(int x=0;x<10;x++){
for(int y=0;y<10y++){
循环体;
}
}
A:外层循环每执行一次,内层循环完整的执行一次。
(3) while 语句
while循环语句也称为当型循环。当条件表达式为真时执行循环体,否则终止。
While(循环条件表达式){
循环体;
}
A:先判断再执行。
B: 循环条件表达式必须是布尔型表达式,
C:语句块中必须有终止条件,或者有终止循环的条件,否则为死循环。
(4) do while 语句
该语句也称为直到型循环,该循环先无条件的执行一遍循环体,再坚持循环条件,为真是继续执行,否则结束。
do{
循环体;
}while(循环条件表达式);
A:先循环再判断。
B:在执行循环体的过程中可以为循环变量赋值,
C:条件表达式为任何布尔型表达式。
D:若为true,继续执行,否则结束。不管真假都会执行一次。
4 转移语句
4.1 break语句
(1)无标号的break语句:
形式break;
作用:强行退出其所在循环,不执行循环中剩余的语句。
(2)带标号的break语句
形式break 标号名;
作用:从标号指示的语句中跳转出来。
4.2 Continue语句
(1)无标号continue语句
形式:continue;
作用:提前结束当前这轮循环,回到测试条件处继续执行。
(2)带标号的continue语句
形式:continue 标签号;
作用:提前结束标号所指循环的当前循环,一般用于循环语句中。
4.3 return 语句
(1)无表达式return语句
格式:return;
作用:结束当前方法的执行。
(2)带表达式的return语句
格式:return 表达式;
作用:退出当前执行的函数方法,返回函数值。
注意;return语句返回值的类型必须要和方法的返回类型相匹配。
五 练习
- <span style="color:#333333;">public class Test1 {
- //斐波那契数列是这样的一组数:数列的第一项、第二项都是1,
- //往后各项的值均为其前两项值之和,编程求第n个斐波那契数列的值。
- public static int method(int n){
- //计算第一项和第二项的值。
- if(n==1||n==2){
- return 1;
- }
- //x1代表第一项,x2代表第2项。count代表当前项;
- int x1=1;
- int x2=1;
- int count=0;
- int i=3;
- while(i<=n){
- //计算斐波那契数列;
- count=x1+x2;
- //更新第一项和第二项的值;
- x1=x2;
- x2=count;
- //更新计数器
- i++;
- }
- return count;
- }
- public static void main(String[] args) {
- System.out.println(method(4));
- }
- }</span>