引言
在编程语言中,用于控制程序执行顺序,流程控制是逻辑的体现,通过流程控制可以组织多条语句。
表达式: 由运算符和操作数组成的式子(赋值表达式,布尔表达式,算数表达式……..)
语句: 就是编程语言的一句话,以分号 ; 结尾 。
流程控制:有多个语句组成的一段代码。
语句块: { }
在编程语言中,通常有哪些流程控制呢?
顺序 选择 循环 goto跳转(java不支持,严重影响代码的可读性,很多语言都摒弃了他,但是Java依然保留了这个关键字)。
1.顺序结构
1.1概念
顺序流程控制,是一种代码执行的默认顺序,依据代码的编写顺序从上到下,从外到内依次执行。
public static void main(String[] agrs){
System.out.println("setp1:打开冰箱门");
System.out.println("setp2:大象放冰箱");
System.out.println("setp3:关闭冰箱门");
}
2.选择结构
2.1单分支IF
2.1.1 语法
if( condition ){
需要执行的语句;
}
// 后续代码
condition 条件表达式 = > boolean 满足执行,不满足不执行
2.1.2 流程图
2.1.3 示例代码
public static void main(String[] args){
//大象的体积
int v = 12;
//最大容量
int max = 10;
if( v < max ){
System.out.println("大象放进冰箱");
}
}
2.2双分支IF
2.2.1语法
if( condition ){
需要执行的语句;
}else{
条件不满足执行的语句;
}
2.2.2流程图
2.2.3示例代码
public static void main(String[] args){
int v = 12;
int max = 10;
if( v <= max ){
System.out.println("ok,可以放进去");
}else{
System.out.println("大象放不下哦");
}
}
2.3 多分支
2.3.1语法
if( condition1 ){
条件1满足 执行的语句;
}else if( condition2 ){
条件2满足 执行的语句
}else if( condition3 ){
条件N满足 执行的语句
}else{
所以条件不满足执行的语句
}
2.3.2流程图
2.3.3示例
public static void main(String[] args){
int level = 5;
if( level <=3 ){
System.out.println("青铜");
}else if( level <= 6 ){
System.out.println("白银");
}else if( level <= 9 ){
System.out.println("黄金");
}else if( level <= 12 ){
System.out.println("铂金");
}else{
System.out.println("最强王者");
}
}
总结: IF 有3种写法 , 单分支 if(){ } 只关心满足条件的情况
双分支 if(){} else{ } 关心逻辑的两面性,满足做什么,不满足又做什么
多分支 if(){} else if() 区间判断,多情况判断,且这些情况都是 是连续的。
2.4 switch 分支
2.4.1 语法
switch( value ){
case 值1 : 语句;
case 值2 : 语句;
case 值N : 语句;
break;
default: 语句;
}
细节 : switch 支持的数据类型 char, byte, short, int Character Byte Short Integer String(jdk1.7) enum 10种数据类型
如果 case 缺少 break 则发生 case “穿透” 不在判断后续case 值之间执行对于语句 直到 找到break;
2.4.2 流程图
2.4.3 示例代码
public static void main(String[] args){
int num = 1;
switch( num ){
case 5 : System.out.println("亚索");
break;
case 2 : System.out.println("安琪拉");
break;
case 3 : System.out.println("王昭君");
break;
case 4 : System.out.println("黄忠");
break;
default: System.out.println("啥玩意?");
}
}
3.循环结构
重复做事情,重复执行某些代码。一般通过三个要素实现控制,1计数器,2循环条件,2计数器变化。
3.1 For 循环
3.1.1 语法
for( 初始化 ; 条件 ; 递增 ){
需要执行的语句;
}
3.1.2流程图
3.1.3 示例
public static void main(String[] args){
for(int i = 0; i < 100; i++){
System.out.println(" Good Boy !");
}
}
3.2 while 循环
3.2.1语法
while( condition ){
执行的语句;
}
3.2.2流程图
3.2.3示例代码
public static void main(String[] args){
int i = 0;
while(i<10){
System.out.println( "hello boy" );
i++;
}
}
3.3 do-while 循环
3.3.1 语法
do{
循环体;
}while( condition );
3.3.2 流程图
3.3.3 示例代码
public static void main(String[] args){
int i = 0;
do{
System.out.println( "hello boy" );
i++;
}while( i<10 );
}
3.4 break 与continue
break 和 continue 的作用是控制循环的节奏,当然break 也可以在 switch中使用,作用是结束switch。
- break: 立即终止本层循环
- continue; 跳过本次循环,快速进入下一次循环 ```java public static void main(String[] args) {
for (int age = 0; age <= 100 ; age++ ){
if( age == 50 ){
break;
}
System.out.println("小杨今年"+age+"岁了");
}
System.out.println("呵呵");
}
```java
public static void main(String[] args) {
for (int age = 0; age <= 100 ; age++ ){
if( age == 50 ){
continue;
}
System.out.println("小明今年"+age+"岁了");
}
System.out.println("哈哈");
}
总结:
for 关注基本明确次数的循环。
while循环通常是关注哪些不太确定次数的循环。
do-while 至少执行一次的循环
break 可以自定义停 比如 a:{
{
}
break a;
}
嵌套循环:for 外层控制行数 内层控制列数
巩固: