当前位置:   article > 正文

Java程序设计的基本结构 - 选择结构_程序结构设计中,选择结构的关键是?

程序结构设计中,选择结构的关键是?

写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。

  • 对于文章中出现的任何错误请大家批评指出,一定及时修改。
  • 有任何想要讨论和学习的问题可联系我:zhuyc@vip.163.com。
  • 发布文章的风格因专栏而异,均自成体系,不足之处请大家指正。

Java程序设计的基本结构 - 选择结构

本文关键字:基本结构、选择结构、if、else、switch、case

一、if-else结构

使用if-else选择结构时,一个最基本的原则就是一定会有一个判断条件,并且如果出现else一定会有一个与之对应的if。

  • 代码格式:if(判断条件){}else{}
  • 判断条件部分可以直接使用布尔值:true/false
  • 如果使用表达式作为判断条件则必须要保证最终的计算结果为布尔类型

对于switch-case结构,整体的结构与if-else不同,虽然也是进行判断,但是switch-case是指定一个变量或表达式作为需要比对的值,通过case来罗列与之匹配的值,并写出该情况下需要执行的代码。

  • 代码格式:switch(变量或表达式){case 匹配值:代码片段;default:代码片段;}
  • 变量或表达式结果的类型只能为:整数类型(byte、short、int),字符串String,字符char,枚举enum
  • case本身具有穿透的特点,会从一个匹配的case进入执行,直到遇到break;为止
  • default关键字可以不出现,如果出现只能出现在最后的位置,在所有case都没有匹配时执行(如果离default最近的一个case没有使用break,则也可能会被执行)

1. 单if结构

单if结构是最简单的选择结构,表达的含义是:符合条件时,执行部分代码,不符合条件时,什么都不做,继续执行选择结构之后的代码。需要注意的是,if用小括号装一个条件,默认只能控制一条语句,如果需要控制多条语句需要使用大括号。

public static void main(Stirng[] args){
    // 假如有如下场景:你每天回家都要汇报你的考试成绩和完成家庭作业
    // 如果你考的不错(90分以上),那么就会得到一次夸奖
    // 如果考的不怎么样,就什么都不会发生
    // 而且,不管考的怎么样,作业都是要完成的,就是如此的悲催
    int score = 92;
    if(score >= 90){
        // 为了避免不必要的麻烦,即使是一行代码我们也加上大括号,这招挺管用的!
        System.out.println("考的不错!");
    }
    System.out.println("开始写作业");
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

2. if-else结构

if-else结构是最基本的选择结构,明确一个判断条件后,指定条件成立时做什么,条件不成立时做什么。

public static void main(Stirng[] args){
    // 假如有如下场景:根据不同的年级进入不同的活动教室
    // 3年级及以下的学生进入活动室一
    // 其他年级学生进入活动教室二
    int grade = 2;
    if(grade <= 3){
        // 为了避免不必要的麻烦,即使是一行代码我们也加上大括号,这招挺管用的!
        System.out.println("进入活动教室一");
    }else{
        System.out.println("进入活动教室二");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

3. if-else if-else结构

如果我们需要具体判断的条件很多,那么我们就需要使用到多个if。需要注意的是,我们可以在一段程序中使用多个并列的if-else结构,但是这和if-eles if-else的结构并不等效,请看流程图。
并列的if-else结构,每个if后面都可以引导判断条件,但是相互之间相对独立,无关联。

// 伪代码如下:
public static void main(Stirng[] args){
    if(条件){
        // 程序代码
    }else{
        // 程序代码
    }
    if(条件){
        // 程序代码
    }else{
        // 程序代码
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述
对于if-else if-else结构,如果一个if中的条件为真,则其他的判断分支将不会执行,即使判断结果为真!

// 伪代码如下:
public static void main(Stirng[] args){
    if(条件){
        // 程序代码
    }else if(条件){
        // 程序代码
    }else{
        // 程序代码
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

在这里插入图片描述

4. 嵌套结构

掌握了基本条件判断结构后,对于复杂问题可能需要使用到嵌套结构。比如某一个问题需要分两种或多种情况讨论,而这几种情况又需要进一步分多种情况讨论。

// 伪代码如下:
public static void main(Stirng[] args){
    if(条件){
        // 程序代码
        if(条件){
            // 程序代码
        }else{
            // 程序代码
        }
    }else{
        // 程序代码
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述

二、switch-case

switch-case结构也是选择结构的一种,主要使用在选择条件较多,并且主要是等值判断时。如果我们需要使用switch-case结构进行某一个范围的判断,那就需要下一点功夫来进行转换。

1. 含有break和default

在这种情况下会按次序进行判断执行匹配到的case后面的代码,执行完毕后直接结束switch-case结构,当所有的case都没有匹配时,会执行default相关的代码。
在这里插入图片描述

public static void main(Stirng[] args){
    String sex = "女";
    switch(sex){
        case "男":
            System.out.println("男生");
            break;
        case "女":
            System.out.println("女生");
            break;
        default:
            System.out.println("怕是变异了?");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

2. 无break

当case对应的值被匹配到后,对应的代码会被执行,由于没有break,将会继续执行下一个case对应的代码(包括default),直到整个switch-case都结束或遇到一个break为止。
在这里插入图片描述

public static void main(Stirng[] args){
    // 有的时候我们刚好可以利用一下穿透的特点,来进行区间的判断
    // 下面是一个经典案例:根据分数进行分档
    // 90-100:A,80-89:B,70-79:C,60-69:D,0-59:不及格,其他:错误的分数
    int score = 75;
    // switch的括号中可以使用表达式,只要计算结果的类型满足要求即可
    // 对分数进行区间的划分,相当于变向的范围判断
    switch(score / 10){
        case 10:
            // 此处什么都不填写,匹配到之后自动去执行case9对应的代码
            // 但是case10不能省略,否则会丢失100分时的情况
        case 9:
            System.out.println("A");
            break;
        case 8:
            System.out.println("B");
            break;
        case 7:
            System.out.println("C");
            break;
        case 6:
            System.out.println("D");
            break;
        case 5:
        case 4:
        case 3:
        case 2:
        case 1:
        case 0:
            // 继续使用穿透的特点,表示0-59分时的情况
            System.out.println("不及格");
            break;
        default:
            // 当分数为负数或大于100分时执行这部分的代码
            System.out.println("成绩录入有误");
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 相关文章列表:

Java程序设计的基本结构

扫描下方二维码,加入官方粉丝微信群,可以与我直接交流,还有更多福利哦~

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/562081
推荐阅读
相关标签
  

闽ICP备14008679号