• JavaSE-03 Java选择结构


    学习要点

    • if选择结构
    • switch选择结构

    if选择结构

    单分支if选择结构

    语法结构

    应用场合

    问题:如果王小强的Java考试成绩大于98分,小强就能获得一个iphone8作为奖励。

     

    复杂条件下的if选择结构

    问题:小强Java成绩大于98分,而且音乐成绩大于80分,老师奖励他;或者Java成绩等于100分,音乐成绩大于70分,老师也可以奖励他。

    逻辑运算符

    运算符

    表达式

    说明

    &&

    条件1 && 条件2

    仅仅两个条件同时为真,结果为真

    ||

    条件1 || 条件2

    只要两个条件有一个为真,结果为真

    !

    ! 条件

    条件为真时,结果为假

    条件为假时,结果为真

    解决方案:

     

        需要注意:逻辑运算符的短路问题和优先级问题。例如“||”符号前一个条件成立的话就不会计算后一个条件。

     

     

    双分支if选择结构

    语法结构

     

    流程图

     

    如何绘制流程图

    圆角矩形:程序的开始和结束

    矩形:执行

    菱形:判断

    梯形:输入输出

    箭头:程序流程

    上机练习

    需求描述:如果体彩中了500万,我买车、资助希望工程、去欧洲旅游;如果没中,我买下一期体彩,继续烧高香。

    实现:1、画出流程图;2、代码实现。

    上机练习

    需求描述:从键盘输入4位数字学号。四位数字平均数取整数,结果等于产生的随机数字即为幸运会员。

    实现:1、画出流程图;2、代码实现。

    提示:1、使用if-else选择结构,输出中奖或者感谢支持信息;2、0-9随机数生成方法:int random=(int)(Math.random()*10);

    多分支if选择结构

    问题:学员成绩评测

    成绩>=80 :良好

    成绩>=60 :中等

    成绩<60   :差

     解决方案

    • 将成绩分成几个连续区间判断
    • 单个if选择结构无法完成
    • 多个if选择结构很麻烦
    • 使用多重if选择结构

     

    多分支选择结构语法分析

     

     

    上机练习

    需求描述:我想买车,买什么车决定于我在银行有多少存款

    如果我的存款超过500万,我就买法拉利

    否则,如果我的存款超过100万,我就买宝马

    否则, 如果我的存款超过50万,我就买奔驰

    否则, 如果我的存款超过10万,我就买大众

    否则, 如果我的存款10万以下 ,我买捷安特

    要求:代码实现。

    注意:多分支选择结构条件顺序问题。

    嵌套if选择结构

    问题:学校举行运动会,百米赛跑跑入10秒内的学生有资格进决赛,根据性别分别进入男子组和女子组。

    解决方案:

    判断是否能够进入决赛

    在确定进入决赛的情况下,判断是进入男子组,还是进入女子组

    使用嵌套if选择结构

    嵌套if选择结构语法分析

     

    上机练习:请写出这一问题的代码实现

      

    switch选择结构

    问题:王小强参加计算机编程大赛

    如果获得第一名,将参加麻省理工大学组织的1个月夏令营

    如果获得第二名,将奖励惠普笔记本电脑一部

    如果获得第三名,将奖励移动硬盘一个

    否则,不给任何奖励

    解决方案:

    使用多重if选择结构实现:缺点——结构复杂,啰嗦

    使用switch选择结构解决:条件——等值判断

    switch选择结构语法分析

     

    注意:break的用法。

    例如:1,3,5吃快餐,2,4,6,7吃大餐,如何实现?

     

    上机练习:实现学生信息管理系统菜单的实现

      

    多重if选择结构和switch选择结构的区别

    选择结构

    相同点

    不同点

    switch选择结构

    都是用来处理多分支条件的结构

    只能处理等值条件判断的情况,而且条件必须是整型变量、字符型变量或者字符串

    多重if选择结构

    没有switch选择结构的限制,特别适合某个变量处于某个连续区间时的情况



    本博客文章未经许可,禁止转载和商业用途!

    如有疑问,请联系: 2083967667@qq.com


  • 相关阅读:
    Matlab+Qt开发笔记(一):matlab搭建Qt开发matlib环境以及Demo测试
    zlib开发笔记(四):zlib库介绍、编译windows vs2015x64版本和工程模板
    项目实战:Qt文件改名工具 v1.2.0(支持递归检索,搜索:模糊匹配,前缀匹配,后缀匹配;重命名:模糊替换,前缀追加,后缀追加)
    黑客级别的文章:把动态库的内存操作玩出了新花样!
    多线程异步日志系统,高效、强悍的实现方式:双缓冲!
    Linux从头学16:操作系统在加载应用程序时,是如何把【页目录和页表】当做普通物理页进行操作的?
    面试官问:什么是布隆过滤器?
    前端-JavaScript异步编程中的Promise
    一文读懂Android进程及TCP动态心跳保活
    cJSON的使用
  • 原文地址:https://www.cnblogs.com/rask/p/8251448.html
Copyright © 2020-2023  润新知