Java流程控制——三种算法结构

三种算法结构

顺序结构

  • Java的基本结构就是顺序结构,除非特别指明,否则就是按照顺序一句一句执行。

  • 顺序结构是最简单的运算结构。

    //举例
    package struct;
    
    public class Order {
        public static void main(String[] args) {
            System.out.println("one");
            System.out.println("two");
            System.out.println("three");
            System.out.println("four");
            System.out.println("five");
        }
    }
    //输出结果为:
    one
    two
    three
    four
    five
    

    图像形式理解:在这里插入图片描述

    ​ 语句与语句之间,框与框之间,是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的。

    是任何一种算法离不开一种基本算法结构

选择结构

  • if 单选择结构
    • 我们很多时候需要去判断一个东西是否可行,然后才会去执行,这样的一个过程在程序中用 if 语句来表示。

    • 语法:

      if(布尔表达式){
          
          //如果布尔表达式为true将执行的语句
          
      }
      

图像形式理解:
在这里插入图片描述

表达式成立,才会去执行后面的·代码才会运行,不成立就是直接跳过
  • if 双选择结构
  • 现在有一个要求,公司要收购一个软键,成功了,给人100万元,失败了,自己找人开发

    面对这样一个需求,用一个 if 就搞不定了。我们需要有两个判断,需要一个双选择结构

    所以就有了 if-else 结构

  • 语法:

    if(布尔表达式){
        
        //如果布尔表达式为true将执行的语句
        
    }else{
        
         //如果布尔表达式为false将执行的语句
    }
    

    图像形式理解:在这里插入图片描述

  • if 多选择结构
  • 实际情况还可能存在ABCD,存在区间的多区间判断。包括在生活中我们很多时候的选择也不仅仅只有两个,所以需要一个多选择结构来处理这类问题

  • 语法:

    if(布尔表达式1){
        //如果布尔表达式1为true将执行的代码
        
    }else if(布尔表达式2){
         //如果布尔表达式2为true将执行的代码
        
    }else if(布尔表达式3){
         //如果布尔表达式3为true将执行的代码
        
    }else{
        //如果以上布尔类型都 不为 true将执行的代码
        
    }
    
  • 嵌套的 if 结构
  • 使用嵌套的 if else 的语句结构是合法的。也就是说你可以在另一个 if 或者else if 语句中使用 if 或者 else if 语句。你可以像 if 语句一样嵌套 else if else

  • 语法:

    if(布尔表达式 1){
        //如果表达式 1的值为true将执行代码
        
        if(布尔表达式 2){
            //如果表达式 2的值为true将执行代码
        }
        
    }
    

    比如说我们现在有一个需求,需要查找1~100之间的数字。

    那么我们就可以用if嵌套来判断(一层套一层),也就是说我们可以把100分成150,50100,

    这样要查的数就在这两组之间,一次性,就可以减少50个数的排查量

    甚至还可以再细分 : 如果大于什么数,如果小于什么数。

    通过这种方式,我们可以减少大量的成本。

  • switch多选择结构
  • 多线选择结构还有一种实现方式 switch case 选择语句

  • switch case 语句判断一个变量于一系列值中某个至是否相等,每个值称为一个分支

  • 语法:

    switch(expression){
             case value:
            		//语句
            		break;  
             case value:
            		//语句
            		break;
            
            //可按需求继续添加擦色语句
            
             default://可以不写
            		break;
    }
    

    代码理解:

        public static void main(String[] args) {
    
            char grade = 'C';
    
            switch(grade){
    
                case 'A':
                    System.out.println("优秀");
                    break;//代码解释:终止循环(如果是这个符如果表达式的值为true执行代码之后,终止这个循环,循环里其他不为true的就不会再执行了)
                    
                case 'B':
                    System.out.println("良好");
    
                case 'C':
                    System.out.println("及格");
    
                case 'D':
                    System.out.println("再接再厉");
    
                case 'E':
                    System.out.println("挂科");
    
                default:
                    //代码解释:除此之外(如果以上的值都为false,将执行代码
                    System.out.println("未知等级");
            }
        }
    
    //运行结果为:
    及格
    再接再厉
    挂科
    未知等级
    
    /*仔细看代码是不是觉得不对劲啊?明明答案是C 也就是会输出:及格
    可是,运行结果其他表达式的值为fals的(不符合条件)居然也有输出:再接再厉、挂科、未知等级
    
    怎么回事呢?这时就要注意到break的作用了!!!
    所有的!所有的判断表达式执行代码之后 都要加上break (如10~12行)这样有效使用 终止循环
    否则就像上面的运行结果,即使表达式的值为fals,也依然会输出
    
    现在请加上按照描述加上:break; 然后在再次运行
    代码没写错的话那么
    运行结果为:
    及格
    */
        
    
  • switch 语句中的变量类型可以是:
    • byte、short、int或者char;
    • 从Java SE 7 开始;
    • switch 支持字符串 String 类型
    • 同时 case 标签必须为字符串常量或字面量
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值