Java基础--流程控制
程序员文章站
2024-03-23 20:36:04
...
流程控制
包括三种:
1.顺序结构
2.选择结构
3.循环结构
选择结构
一、单分支
语法结构:
if(表达式.boolean值){
执行语句;
}
执行顺序:
1:判定表达式的值,如果表达式的值位true执行对应 的执行语句
2:表达式值是false 整个if语句都不执行
注意事项:
当if分支中存在单条语句时可以省略大括号。当整个if的表 达式无论真假,执行之后都会执行后续代码以后多大数的逻 辑不单单只有两种情况,有待加强。单分支结构永远只能 保证一种情况下会做什么操作。
二、双分支
语法结构:
if(boolean值表达式){
执行语句1;
}else{
执行语句2;
}
执行顺序:
1:判定表达式的结果,如果表达式的结果是true
执行对应的执行语句1
2:如果表达式的结果是false 那么执行对应的执行语 句2
注意事项:
可以省略大括号 保证执行语句只有一行即可整个判定 结果结束执行,执行语句执行之后继续执行后续代码
三、多分支
语法结构:
if(表达式1){
执行语句1;
}else if(表达式2){
执行语句2;
}else if(表达式3){
执行语句3;
}................{
}else{
执行语句n;
}
执行顺序:
1:判定表达式的结果,如果表达式的结果是true
执行对应的执行语句。整个多分支结果执行结束。
2:依次判定后续的else if,只要有一个判定结果是 true那么整个多分支结束。
3:如果所有的判定条件都为假,执行最后的else内容
四、switch
语法结构:
switch(表达式){
case 值1:
执行语句1;
break;
case 值2:
执行语句2;
break;
.......
default:
执行语句3;
}
执行顺序:
首先计算switch中的表达式的值然后依次匹配对应的 case,如果匹配成功,执行对应的执行语句这里注意要 通过break防止穿透,如果所有的case都不匹配执行最后 的default,default位置无所谓的
注意事项:
1:防止case穿透,用break
2: switch只能做等值判定 if可以做区间判定
3: default位置可以任意 一般放到最后
4: switch表达式值不能是long float double boolean 类型
jdk1.5之后允许switch中存放枚举类型enum
jdl1.7之后允许switch中存放String类型
保证case也是String类型
循环结构
一、while循环
语法结构
while(循环条件|表达式){
循环体;//执行语句
}
执行顺序
1:判定循环条件,如果条件为真执行循环体1次
2:再次判定循环条件,直到循环条件不满足,整个循 环结束。
注意事项
不确定循环次数优先考虑while
二、do-while循环
语法结构
do{
循环体;
}while(循环条件);
执行顺序
1:先执行循环提一次
2:再判定循环条件,如果条件为真,执行循环体1次
3:再次判定循环条件,直到循环条件不满足,整个循环 结束。
注意事项
while先判定在执行
do-while先执行在判定
三、for循环
语法结构
for(循环变量;循环条件;改变循环变量的表达式){
循环体;
}
执行顺序
1:声明循环变量 (降低生命周期 调高内存利用率)
2:判定循环条件 如果循环条件为真,执行循环体一次
3:改变循环变量的值,判定循环条件,直到循环条件 不满足整个循环结束
注意事项
1:确定循环次数可以使用for循环
跳出循环的方法
1. continue
跳出本次循环,这次循环不执行,跳到下次循环开始
2.break
switch防止穿透,跳出当前循环(指break所在的循环)
3.return
结束所有的循环,结束当前方法
斐波那契数列
计算斐波那锲数列 兔子问题
1 1 2 3 5 8 13 。。。。
计算第20个数字是多少?
第一项:1
第二项:1
第三项:前两项的和
第20项: 第19+第18
int num1 = 1;
int num2 = 1;
int num3 = num1+num2;
num1 = num2;// 第一项里存放的是第二项的值
num2 = num3;//第二项里存放的是第三项的值
num3 = num1+num2;
public class Demo08{
public static void main(String[] args){
//声明前2项的值
int num1 = 1;
int num2 = 1;
int num3 = 0;
for(int i = 3;i<=20;i++){
num3 = num1+num2;
//交换位置
num1 = num2;
num2 = num3;
}
System.out.println("第20项是:"+num3);
}
上一篇: 2018-03-24-路灯
下一篇: mysql 连表分组 多个字段用逗号隔开