美文网首页Java核心基础
Java核心基础第3篇-Java流程控制

Java核心基础第3篇-Java流程控制

作者: IT蚱蜢哥 | 来源:发表于2021-07-11 22:44 被阅读0次

    Java流程控制

    本章一起来探讨下Java的流程控制语句。主要从以下几个方面展开:

    • Java分支语句
    • Java循环语句

    Java其实和其他任何的开发语言一样,<u>分支语句</u><u>循环语句</u>是必不可少的,有个这两个功能之后,我们完成类似:

    1. 判断成绩等级,优秀或者良好
    2. 完成九九乘法表等相关的操作
    image-20210711173100749

    一、分支语句

    1.1 分支语句简介

    • 分支语句根据一定的条件有选择地执行或跳过特定的语句
    • 从而来完成根据不同的条件,得到不同的结果,来满足现实生活中的需求
    • Java中提供了多种实现分支语句的方式
      • 1)if : 单分支语句,如果满足进入该语句块
      • 2)if...else: 如果满足进入该if语句块,否则进入else语句块,二选一
      • 3)if...else if...else if...else:多分支语句,条件满足进入一个分支,如果都不满足进入 else
      • 4)switch...case: 实现语句块
    Java分支语句

    1.2 if单分支语句

    if单分支语句,表示只要条件满足,就会进入语句块内容,否则直接跳过。

    上图左侧部分就是表示if单分支语句

    //语法
    if(条件表达式){
        //如果条件为true,执行到该语句。否则跳过该语句
    }
    

    案例:

    如果成绩score大于等于90,将grade等级设置有优秀,否则忽略

    public static void main(String[] args) {
        int score = 91;
        String grade = "";
        if(score>=90) {
            grade = "优秀";
            System.out.println("小明获得鸡腿一只");
        }
        System.out.println("end...");
    }
    

    注意:以后代码过程中,注意测试。否则条件特别容易被漏掉

    1.3 if...else双分支语句

    if...else称为双分支语句,如果条件满足则进入if语句块,否则进入else语句块;

    也就是说ifelse语句块必须会进入其中的一个分支;同时也不存在两个分支同时进入;

    如上图右侧,就是if...else的使用场景

    语法:

    // 格式  双分支语句   if 或者else 永远进入一个分支
    if(条件){
        //条件为真,进入
    }else{
        //否则进入else
    }
    

    案例:

    如果小明成绩不低于90分,奖励一只鸡腿,否则只能吃青菜

    public static void main(String[] args) {
        int score = 89;
        //注意:以后代码过程中,注意测试。否则条件特别容易被漏掉
        if(score>=90) {
            System.out.println("小明获得鸡腿一只");
        }else {
            System.out.println("小明被罚只能吃青菜");
        }
        System.out.println("end...");
    }
    

    1.4 if...else if...else语法

    if...else if...else也被称为多分支语句,可以指定多个条件。

    但是能够进入分支的只有一个

    image-20210711185515878

    语法:

    //语法
    if(条件){
        //满足进入
    }else if(条件2){
        //满足进入
    }else if(条件3){
        //满足进入
    }else{
        //都不满足,进入else
    }
    

    案例:

    不同的条件进入不同的分支,例如:成绩为88,奖励麻辣鸡爪一个

    public static void main(String[] args) {
        int score = 50;
        // 注意:以后代码过程中,注意测试。否则条件特别容易被漏掉
        if (score >= 90) {
            System.out.println("小明获得鸡腿一只");
        } else if (score >= 80) {
            System.out.println("麻辣鸡爪一个!");
        } else if (score >= 60) {
            System.out.println("奖励练习题一打!");
        } else {
            System.out.println("小明被暴打了一顿");
        }
        System.out.println("end...");
    }
    

    注意:如果多个条件同时满足,那么会从上而下,自动匹配。当进入一个分支之后,就不会在进入其他分支。

    1.5 switch...case语句

    在处理多个选项的时候,除了可以使用if...else,Java还提供了另外一种分支语句,那就是switch...case

    switch语句将从选项值相匹配的case标签处开始执行,知道语句结束或者遇到break关键字

    image-20210711215008423

    语法结构:

    • switch(表达式)中表达式的返回值必须是下述几种类型之一:int,byte, char, short, 枚举, 字符串
    • case子句中的值必须是常量,且所有case子句中的值应是不同的;
    • default子句是最终执行
    • break语句用来在执行完一个case分支后使程序跳出switch语句块;
    // 给固定的内容
    switch(表达式){
        case 常量1:
            //语句块
            break;
        case 常量1:
            //语句块
            break;
        case 常量1:
            //语句块
            break;
        default:
            //语句块:类似else
    }
    

    案例:

    根据不同的值,获取不同的级别

    public static void main(String[] args) {
    
        int top = 1;
        switch (top) {
    
            case 1:
                System.out.println("恭喜总冠军!!");
                break;
            case 2:
                System.out.println("恭喜亚军!!");
                break;
            case 3:
                System.out.println("恭喜季军!!");
                break;
            case 4:
                System.out.println("恭喜第四!!");
                break;
            case 5:
                System.out.println("恭喜第五!!");
                break;
            default:
                System.out.println("墊底");
        }
    
    }
    

    注意:

    ①表达式的值如果和常量的内容保持一致,表示会进入该代码块
    ②break,跳出当前的语句快,否则会一直往下执行

    二、循环语句

    2.1 循环语句简介

    在满足指定条件下,反复执行特定的代码。

    例如:将1-100之间的和进行累加;

    public static void main(String[] args) {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            sum = sum+i;
        }
        System.out.println("sum=" + sum);
    }
    

    Java中提供了三种基本的循环:

    • for循环
      • 1)普通for循环
      • 2)增强for循环
    • while
    • do...while
    image-20210711222528933

    2.2 for循环

    for循环语句是支持迭代的一种通用结构, 利用每次迭代之后更新的计数器或类似的变量来控制迭代次数

    for一般用来明确循环次数的情况使用,更加的方便

    1、循环组成部分:

    a.初始化
    b.循环条件
    c.循环体,循环的内容
    d.迭代(改变原来的值)
    
    //语法:
    for(初始化;条件判断;迭代)
    {
        //循环体 具体反复执行的代码
    }
    

    2、案例

    打印1-100之间的偶数列

    for (int i = 1; i <= 100; i++) {
        if(i%2==0){
            System.out.println("i=" + i);
        }
    }
    

    3、for执行顺序

    1. 第一步,对i进行初始化为1
    2. 第二步,判断i是否小于100
    3. 第三步,如果返回true,执行对应语句块内容
    4. 第四步,执行语句块内容,进行迭代,将i进行++操作
    5. 第五步,迭代完毕之后在进行判断,执行第二步操作
    6. 第六步,如果满足继续进入代码块,如果不满足,则跳出循环
    image-20210711221205176

    2.3 while循环

    当条件为 true 时,while 循环执行一条语句(也可以是一个语句块)。一般格式为

    语法格式(先判断,再执行):
    [初始值]
    while(条件)
    {
        //语句块
        // 迭代[更改初始值]
    }
    

    如果开始循环条件的值就为 false, 则 while 循环体一次也不执行

    案例:

    将1-100之间的和进行累加操作

    public static void main(String[] args) {
        int result = 0;
        int i = 1;
        while (i <= 100) { // 判断条件
            // 语句块
            result += i;
            System.out.println("i=" + i + " result=" + result);
            i++;
        }
    
    }
    

    2.4 do...while

    如果希望循环体至少执行一次, 则应该将检测条件放在最后。 使用 do/while 循环语句可以实现这种操作方式;

    whiledo...while 最大的区别就是:

    • while:先判断,再执行
    • do...while:先执行,再判断,所以do...while至少都会执行一次

    语法格式:

    语法格式:(先执行,在判断:不管条件如何,都会至少执行一次)
    [初始化内容]
    do{
        //语句块 
        [迭代]
    }while(判断条件);
    

    案例:

    将1-100之间的和进行累加操作

    public static void main(String[] args) {
        int result = 0;
        int i = 1;
        do {
            result += i;
            System.out.println("i=" + i + " result=" + result);
            i++;
        } while (i <= 100);
    }
    

    2.5 中断循环

    Java提供了continuebreak 关键字用来终止循环继续执行。

    • continue用来终止本次循环,该continue关键字后面的所有内容都不会被执行;然而continue会迭代,然后执行下一次循环;
    • break 用来跳出当前所在的循环,属于该循环下所有的内容都会终止执行;

    以下是两者的使用注意事项:

    • break只能用于switch语句和循环语句中。
    • continue 只能用于循环语句中。
    • 标号语句必须紧接在循环的头部。标号语句不能用在非循环语句的前面。
    • break和continue之后不能有其他的语句,因为程序永远不会执行break 和 continue之后的语句。

    案例:

    当i=5是,使用不同关键字,所得到结果

    for (int i = 1; i <= 10; i++) {
        if (i == 5) {
            //break; //1 2 3 4
            continue; //1 2 3 4  6 7 8 9 10
        }
        System.out.println("continue==>i = " + i);
    }
    
    image-20210711223525061

    2.6 嵌套循环

    public static void main(String[] args) {
    
        // 1. 外层: 控制行数 1-9行
        // 2.内层 :控制每一行 有多少个列(需要计算多杀次)
        for (int i = 1; i <= 9; i++) {
            // aa:标号 使用:分割 必须写在循环的头部
            for (int j = 1; j <= i; j++) {
                System.out.print(j + "*" + i + "=" + (j * i) + "\t");
            }
            System.out.println(); // 换行
        }
    }
    
    image-20210711173100749

    三、实战题

    第1题:
    实现一个查询月天数的程序键盘输入年月 判断这年这个月有多少天。<闰年条件:能被4整除且不能被100整除或者能被400整除>
        
    第2题:
    国家税务局规定不同行业的税收数额度不一样   
            税收=(工资-起征点)*税率
           行业有
           1.服务行业  2.制造业  3.农业
           1.服务行业税收的起征点是2000 元  2000元以上需要缴纳10%的个人所得税
           2.制造业税收的起征点是3000元  3000元以上需要缴纳5%的个人所得税
           3.农业税收的起征点是1500元  1500元以上需要缴纳2%的个人所得税
           提示用户选择行业,输入工资 ,输出税后工资。
       
    第三题:
    运费计算器:运输公司对用户计算运费.路程越远每公里运费越低.每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费f的计算公式为
    f=p*w*s*(1-d)
           s<250没有折扣
           250<=s <500 2%折扣
           500<=s<1000 5%折扣
           1000<=s<2000  8%折扣
           2000以上 15%折扣。
                        
    第四题:
    编写一个某年第一天是星期几的查询器:程序输出:XXXX年一月一日是 星期X
    提示:1900年一月一日是星期一
    
    第五题:
    根据流程图完成银行取钱业务程序
    
    image-20210711224141038
    第六题:
    编写一个日历程序:输入年月 按照格式输出该年月的日历
    提示:1900年一月一日是星期一
    
    image-20210711224236987

    本博文由 IT蚱蜢哥 原创发布!欢迎转载,注明出处!

    相关文章

      网友评论

        本文标题:Java核心基础第3篇-Java流程控制

        本文链接:https://www.haomeiwen.com/subject/uyplpltx.html