九天学会Java,第三天,选择结构

凯威讲堂

选择结构

  • 变量和数据类型,赋值和输出

  • 算术运算

  • 选择结构 <----

  • 循环结构

  • 函数定义,函数调用

  • 变量作用域

  • 栈,程序运行的基石

  • 面向对象

  • 异常处理

  • 语言提供的公用包

上一节介绍了Java的算术运算,如加减乘除等,Java的运算规则跟四则运算一样。这节我们介绍选择结构

一般来说程序有三种结构:

  1. 顺序结构

  2. 选择结构

  3. 循环结构

程序至上而下逐行执行,一条语句执行完之后继续执行下一条语句,如下图所示:

image

选择结构是根据条件的成立与否,再决定要执行哪些语句的一种结构。如果我没记错,现在中学阶段都会学简单的流程图。

case1

先看最常见的选择结构,如果判断条件成立,执行语句1,执行完语句1之后到语句3.如果判断条件不成立,执行语句2,执行完语句2之后执行语句3.

if (判断条件) {
    语句1;
} else {
    语句2;
}
语句3

image

case2

还有一种常见的选择结构,如果判断条件成立,则执行主体语句。执行完主体语句之后执行其他语句。

if (判断条件) {
     主体语句;
}
其他语句

image

/**
 * 本例子讲解选择结构
 * 同时也回顾之前的知识点
 */
public class ThirdLesson {

    public static void main(String[] args) {
        /**
         * 新建一个浮点型变量,名字叫score,70.1f是70.1浮点数的意思
         * 把70.1赋值给score
         * 一般软件里,score是从外部输入进来的,比如老师输入你的分数
         */
        float score = 70.1f;
        /**
         * 如果score 大于等于60,则执行 System.out.println("You have passed the exam");
         * 然后执行System.out.println("程序继续");
         *
         * 如果score 小于60,则执行System.out.println("You have failed the exam");
         * 然后执行System.out.println("程序继续");
         * 
         * 请对照case1里的流程图思考
         */
        if (score >= 60) {
            System.out.println("You have passed the exam");
        } else {
            System.out.println("You have failed the exam");
        }
        System.out.println("程序继续");
        /**
         * 修改变量score的值
         * 把100赋值给score
         */
        score = 100f;
        /**
         * 如果score > 99,则执行System.out.println("我草,学霸啊");
         * 然后执行System.out.println("本示例结束");
         * 
         * 请对照case2里的流程图思考
         */
        if (score > 99) {
            System.out.println("我草,学霸啊");
        }
        System.out.println("本示例结束");
    }
}

case3

case3是比较复杂的if elseif 结构

if (判断条件1) {
    主体语句1;
} else if (判断条件2) {
    主体语句2;
} else if (判断条件3) {
    主体语句3;
} else {
    主体语句4
}

顺着前面的讲解,我们试着通过一个例子说明if elseif 的用法。

        score = 80f;
        if (score >= 60 /*判断条件1*/) {
            System.out.println("小伙及格了"); /*执行语句1*/
        } else if (score >= 80 /*判断条件2*/) {
            System.out.println("小伙成绩还不错,优良"); /*执行语句2*/
        } else if (score >= 90 /*判断条件3*/) {
            System.out.println("小伙可谓之优秀"); /*执行语句3*/
        } else if (score >= 95 /*判断条件4*/) {
            System.out.println("有成为学霸的潜质"); /*执行语句4*/
        } else if (score >= 100 /*判断条件5*/) {
            System.out.println("哈哈,学霸呀"); /*执行语句5*/
        } else {
            System.out.println("不到60分,你他喵逗我呢"); /* 执行语句6 */
        }
        /*继续执行*/

这个例子应该会输出/执行语句2/的"小伙成绩还不错,优良"
如果把score=80f,改成score=95f.会输出 /执行语句4/ 的"有成为学霸的潜质"。
所以整个逻辑是先判断 /判断条件1/ 成不成立,如果成立则执行 /执行语句1/ 。 否则,判断/判断条件2/,
如果成立,则执行 /执行语句2/。 用逻辑图来说明就是:

image

总结

  • 选择结构使用if else语法,或者单独使用if

  • if(){} else if {} else if{} else {} 表达了,如果,否则,否则,否则...

作业

(同时回顾前两节的内容)

  • 定义一个int变量,给定一个值,比如是7,程序输出该值是“偶数”还是“奇数”

  • 定义三个double变量,比如double chinese = 85f, double math = 80f...;值在初始化时给定,写程序计算三门成绩的平均分,如果平均大于60分,输出及格,如果大于80分输出优良,大于90分输出优秀,否则就输出不及格

完整章节

阅读 1.4k

凯威的讲堂
分享系统架构设计实现,机器学习,也讲讲best practice

博主曾工作于百度,Amazon,当前在粉笔网。从事过检索,排序,推荐后端开发,全球物流系统,支付系统 : ) 欢迎大家多交流

1.3k 声望
694 粉丝
0 条评论
你知道吗?

博主曾工作于百度,Amazon,当前在粉笔网。从事过检索,排序,推荐后端开发,全球物流系统,支付系统 : ) 欢迎大家多交流

1.3k 声望
694 粉丝
宣传栏