04-流程控制

本文详细介绍了编程语言中的流程控制结构,包括顺序结构、选择结构(单分支IF、双分支IF、多分支IF和switch分支)和循环结构(For、While和Do-While循环)。同时,讨论了break和continue在循环中的作用,并提供了相关示例代码。通过对这些基础知识的掌握,有助于提升编程能力。
摘要由CSDN通过智能技术生成

引言

编程语言中,用于控制程序执行顺序,流程控制是逻辑的体现,通过流程控制可以组织多条语句。

表达式: 由运算符和操作数组成的式子( 赋值表达式 布尔表达式 算术表达式…)。
语句: 就是编程语言的一句话,以分号 结尾 。
流程控制:有多个语句组成的一段代码。
语句块: { }

在编程语言中,通常有哪些流程控制呢? 顺序 选择 循环 goto跳转(java不支持,严重影响代码的可读性,很多语言都摒弃了他,但是Java依然保留了这个关键字)。

1. 顺序结构

1.1概念

顺序流程控制,是一种代码执行的默认顺序,依据代码的编写顺序从上到下,从外到内依次执行。
![图片 4_7.png](https://img-blog.csdnimg.cn/img_convert/d1ae95467e6ed985555cb6616890604d.png#crop=0&crop=0&crop=1&crop=1&height=399&id=csKfm&margin=%5Bobject%20Object%5D&name=图片 4_7.png&originHeight=759&originWidth=1200&originalType=binary&ratio=1&rotation=0&showTitle=false&size=239994&status=done&style=none&title=&width=631)

1.2 流程图


1.3 示例代码

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 m = 12;
    //最大容量
    int max = 10;
    if( m < 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 m = 12;
    int max = 10;
    if( m <= 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 ){
    case1 :  语句; //语句跟代码块
        break;
    case2 :  语句; 
        break;
    caseN :  语句; 
        break;
    default: 语句; 
        
}

细节 : switch 支持的数据类型 char, byte, short, int Character Byte Short Integer String(jdk1.7) enum 10种数据类型

如果 case 缺少 break 则发生 case “穿透” 不在判断后续case 值之间执行对于语句 直到 找到break;

注意事项:
1、 switch 只支持 char, byte, short, int ,String,枚举(enum );
2 、每一个case 最后都要加上break,(不然就会出现条件穿透);
3、jdk1.7+ 版本在能支持String,枚举(enum );

思考: if 和switch 有什么异同(面试题);

2.4.2 流程图

2.4.3 示例代码
public static void main(String[] args){
    int num = 1;
    switch( num ){
        case 1 :  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( 初始化 ; 条件 ;  递增   ){
     需要执行的语句;
}       

最基本的for写法

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 !");
     }
}

for 循环的执行流程
image.png

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 );

image.png

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; 跳过本次循环,快速进入下一次循环

案例说明:

  public static void main(String[] args) {

        System.out.println("呱呱坠地");

        for (int age = 0; age <= 100  ; age++ ){

            if( age == 50  ){  
                break;  
            }

            System.out.println("辉哥今年"+age+"岁了");
        }

        System.out.println("呵呵");

    }

发现输出 到 49 就没了

  public static void main(String[] args) {

        System.out.println("呱呱坠地");

        for (int age = 0; age <= 100  ; age++ ){

            if( age == 50  ){  
                continue;  
            }

            System.out.println("小明今年"+age+"岁了");
        }

        System.out.println("呵呵");

    }

发现只用 50 没有输出

总结:
* * for 关注基本明确次数的循环。
* * while循环通常是关注哪些不太确定次数的循环。
* * do-while 至少执行一次的循环

image.png

复杂点的题目(有些要嵌套for)
image.png


//1. 输入一个任意数 统计它各个位数上数字和 比如输入1234 345678 12345678 等位数不限建议使用long
//2. 1 1 2 3 5 8 13 … 打印第12项数值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值