1-4 逻辑控制语句

顺序结构: 从上往下,依次执行

java 任务生成逻辑 java业务逻辑怎么写在哪里_if语句

选择结构:

QQ界面的登录,填写账号和密码正确,展示好友列表界面。填写账号或者密码有误,提示:你输入的账号或密码不正确。

这就是通过选择结构来实现的,实际开发中,类似这种逻辑判断的情况非常常见。

java 任务生成逻辑 java业务逻辑怎么写在哪里_if语句_02

循环结构:

比如说,京东商城中,查询手机数据,京东就会返回给你一堆符合你查询要求的数据。

假如,每一部手机数据的展示需要5行代码,如果最终返回了1000部手机,你就需要编写5000行代码来实现数据展示。

这样就太麻烦了,那么,有没有一种流程语句,能够简化这种操作呢?答案肯定是有的,就是我们的循环结构,它就可以通过一个比较简单的结构来控制我们的手机展示1000次。

比如说,带着这样写就可以了,这就是循环结构。

java 任务生成逻辑 java业务逻辑怎么写在哪里_System_03

1.1、顺序结构

顺序结构: 是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行

执行流程图:

java 任务生成逻辑 java业务逻辑怎么写在哪里_System_04

代码演示:

/*
    顺序结构语句
 */
public class OrderDemo {
    public static void main(String[] args) {
        System.out.println("开始");
        System.out.println("语句A");
        System.out.println("语句B");
        System.out.println("语句C");
        System.out.println("结束");
    }
}

这个比较简单,也没什么好练习的。就不练了,我们继续往下学习。

1.2、Debug 的基本使用

Debug: 是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序

它的两大作用,查看程序执行流程,调试程序。由于目前我们每个程序的代码内容还比较少。

Debug:又被称为断点调试,断点其实是一个标记,告诉我们从哪里开始查看

① 如何加断点

选择要设置断点的代码行,在行号的区域后面单击鼠标左键即可。如图

java 任务生成逻辑 java业务逻辑怎么写在哪里_System_05

② 如何运行加了断点的程序

在代码区域右键 Debug 执行

java 任务生成逻辑 java业务逻辑怎么写在哪里_java_06

③ 看哪里

看 Debugger 窗口,看 Console 窗口

java 任务生成逻辑 java业务逻辑怎么写在哪里_java 任务生成逻辑_07

④ 点哪里

点(Step Over F8) 开始,点 (Stop) 结束

java 任务生成逻辑 java业务逻辑怎么写在哪里_System_08

⑤ 如何删除断点

选择要删除的断点,单击鼠标左键即可。也就是把第一步的动作,再做一次即可。

总结一下,Debug的使用流程:

  1. 如何加断点:
    选择要设置断点的代码行,在行号的区域后面单击鼠标左键即可
  2. 如何运行加了断点的程序:
    在代码区域右键Debug执行
  3. 看哪里:
    看Debugger窗口,看Console窗口
  4. 点哪里:
    点(Step Over F8) 开始,点 (Stop) 结束
  5. 如何删除断点:
    选择要删除的断点,单击鼠标左键即可

通过Debug的方式看一下,如下代码的执行流程:

/*
    Debug查看程序执行流程
 */
public class DebugDemo {
    public static void main(String[] args) {
        //定义一个int类型的变量,用来表示价格
        int price = 998;

        //输出变量
        System.out.println(price);

        //修改变量的值
        price = 888;

        //再次输出变量的值
        System.out.println(price);
    }
}

1.3、选择语句之if

选择语句有两种结构:

  1. if 语句
  2. switch 语句

举例说明一下:

java 任务生成逻辑 java业务逻辑怎么写在哪里_java 任务生成逻辑_09

无人驾驶的核心就是需要编写大量的判断逻辑,让车辆的行驶变得更加安全。

了解了交通信号灯的基本逻辑后,下面呢,我们通过 if 语句来实现过马路的信号灯判断,而 if 语句呢,有三种格式,这里我们首先来学习第一种格式

1.3.1、if 语句格式 1

格式:

java 任务生成逻辑 java业务逻辑怎么写在哪里_java 任务生成逻辑_10

范例:

java 任务生成逻辑 java业务逻辑怎么写在哪里_java_11

执行流程:

java 任务生成逻辑 java业务逻辑怎么写在哪里_java_12

代码演示:

public static void main(String[] args) {
    //定义一个变量,用来表示绿灯的状态
    boolean isGreen = true;
    isGreen = false;

    if(isGreen) {
        System.out.println("绿灯行");
    }
}
1.3.2、if 语句格式 2

if -> else

public static void main(String[] args) {
    //定义一个变量,用来表示绿灯的状态
    boolean isGreen = true;
    isGreen = false;

    if (isGreen) {
        System.out.println("绿灯行");
    } else {
        System.out.println("不是绿灯,不允许行使");
    }
}

演示完毕后,我们来说一下,if语句格式2:

格式:

java 任务生成逻辑 java业务逻辑怎么写在哪里_执行流程_13

范例:

java 任务生成逻辑 java业务逻辑怎么写在哪里_执行流程_14

执行流程:

java 任务生成逻辑 java业务逻辑怎么写在哪里_System_15

1.3.3、if 语句格式 3

if->else if->else

代码演示:

public static void main(String[] args) {
    //定义三个变量,表示交通信号灯的三种状态
    boolean isRed = true;
    boolean isGreen = true;
    boolean isYellow = true;

    //出现了故障,信号灯都不亮了
    isRed = false;
    isGreen = false;
    isYellow = false;


    if(isRed) {
        System.out.println("红灯停");
    }else if(isGreen) {
        System.out.println("绿灯行");
    }else if(isYellow) {
        System.out.println("黄灯亮了等一等");
    } else  {
        System.out.println("交通信号灯故障,请在保证安全的情况下通行");
    }
}

格式:

java 任务生成逻辑 java业务逻辑怎么写在哪里_java_16

执行流程:

java 任务生成逻辑 java业务逻辑怎么写在哪里_java_17

1.3.4、if 语句格式 4

除了以上三种格式之外还有一种简化格式,如果执行的代码实际上只有一行的情况下可以使用简化格式

但是并不推荐使用

代码演示:

public static void main(String[] args) {
    boolean isGreen = true;
    boolean isFalse = false;


    // 格式 1 的简化
    if(isGreen) System.out.println("绿灯行");
    
    //格式 2 的简化
    if(isGreen) System.out.println("绿灯行");
    else System.out.println("不是绿灯,不允许行使");
    
    //格式 3 的简化
    if(isGreen) System.out.println("绿灯行");
    else if(isfalse) System.out.println("不是绿灯,不允许行使");
    else System.out.println("不是绿灯,不允许行使");
}
1.3.5、案例 1 (交通信号灯)

需求: 交通信号灯由红灯、绿灯、黄灯组成,请通过程序实现不同的信号灯给出不同的提示。

提示信息: 红灯停、绿灯行、黄灯亮了等一等

java 任务生成逻辑 java业务逻辑怎么写在哪里_java 任务生成逻辑_18

分析:

① 用哪种类型来表示信号灯的三种状态呢?

用 int 类型来表示信号灯的三种状态(1 表示红灯,2 表示绿灯,3 表示黄灯)

② 用 if 语句的哪种格式来实现该需求呢?

一般来说:1种情况的判断用 if 格式 1,2 种情况的判断用 if 格式 2,多种情况的判断用 if 格式 3

③ if 语句判断的表达式该怎么写呢?

int light = 1;

if(light == 1) {…}

==:是关系运算符,用来判断两个数据是否相等,如果相等,结果为 true,否则为 false

分析完毕后,我们来说一下实现步骤:

实现步骤:

① 定义一个 int 类型的变量用来表示信号灯的状态(1 表示红灯,2 表示绿灯,3 表示黄灯)

② 用 if 语句格式 3 进行多种情况的判断

③ 根据不同的情况给出不同的提示信息

代码演示:

/*
    需求:交通信号灯由红灯、绿灯、黄灯组成,请通过程序实现不同的信号灯给出不同的提示。
    提示信息:红灯停、绿灯行、黄灯亮了等一等
 */
public class IfTest01 {
    public static void main(String[] args) {
        //1:定义一个int类型的变量用来表示信号灯的状态(1表示红灯,2表示绿灯,3表示黄灯)
        int light = 1;
        light = 2;
        light = 3;
        light = 4;

        //2:用if语句格式3进行多种情况的判断
        //3:根据不同的情况给出不同的提示信息
        if (light == 1) {
            System.out.println("红灯停");
        } else if (light == 2) {
            System.out.println("绿灯行");
        } else if (light == 3) {
            System.out.println("黄灯亮了等一等");
        } else {
            System.out.println("交通信号灯故障,请在保证安全的情况下通行");
        }
    }
}
1.3.6、关系运算符

Java 中的关系运算符有如下几种:

java 任务生成逻辑 java业务逻辑怎么写在哪里_if语句_19

代码演示:

public static void main(String[] args) {
    //定义三个int类型的变量
    int i = 10;
    int j = 20;
    int k = 10;

    //等于:==
    System.out.println(i == j);//false
    System.out.println(i == k);//true
    System.out.println("--------");

    //不等于:!=
    System.out.println(i != j);//true
    System.out.println(i != k);//false
    System.out.println("--------");

    //大于:>
    System.out.println(i > j);//false
    System.out.println(i > k);//false
    System.out.println("--------");

    //大于等于:>=
    System.out.println(i >= j);//false
    System.out.println(i >= k);//true
    System.out.println("--------");

    //千万不要把==写成了=
    System.out.println(i = j); //20
}

注意事项:

java 任务生成逻辑 java业务逻辑怎么写在哪里_java 任务生成逻辑_20

1.3.7、案例 2 (奇偶数)

需求: 给定一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数

提示: 偶数是能够被 2 整除的整数

分析:

① 如何判断一个整数是奇数还是偶数?

整数对 2 进行取余,余数为 0 是偶数,否则为奇数

② 用if语句的哪种格式来实现该需求呢?

该整数要么是偶数,要么是奇数,2 种情况,所以用 if 语句格式 2

实现步骤:

① 定义一个 int 类型的整数

② 用 if 语句格式 2 进行判断

③ 根据是否是偶数给出不同的提示信息

代码演示:

/*
    需求:给定一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数
 */
public class IfTest02 {
    public static void main(String[] args) {
        //1:定义一个int类型的整数
        int number = 10;
        number = 9;

        //2:用if语句格式2进行判断
        //3:根据是否是偶数给出不同的提示信息
        if (number % 2 == 0) {
            System.out.println(number + "是偶数");
        } else {
            System.out.println(number + "是奇数");
        }
        
    }
}
1.3.8、案例3(手机以旧换新)

需求: 张三想买一台 7988 元的新手机,他的旧手机在二手市场能卖 1500 元,而手机专卖店推出以旧换新优惠,把他旧手机交给店家,新手机就能够打 8 折优惠。

为了更省钱,要不要以旧换新?请通过程序告诉张三

分析:

① 计算不使用以旧换新的花费

7988 - 1500

② 计算使用以旧换新的花费

7988 * 0.8

③ 用if语句的哪种格式来实现该需求呢?

if 语句格式2

实现步骤:

① 定义变量 (money1) 纪录不使用以旧换新的花费

② 定义变量 (money2) 纪录使用以旧换新的花费

③ 用 if 语句格式 2 进行判断 money1 是否大于 money2

④ 根据判断结果,给出相应的提示

代码演示:

/*
    需求:张三想买一台7988元的新手机,他的旧手机在二手市场能卖1500元,而手机专卖店推出以旧换新优惠,
        把他的旧手机交给店家,新手机就能够打8折优惠。为了更省钱,要不要以旧换新?请通过程序告诉张三
 */
public class IfTest03 {
    public static void main(String[] args) {
        //1:定义变量(money1)纪录不使用以旧换新的花费
        int money1 = 7988 - 1500;

        //2:定义变量(money2)纪录使用以旧换新的花费
        double money2 = 7988 * 0.8;

        //3:用if语句格式2进行判断 money1是否大于money2
        //4:根据判断结果,给出相应的提示
        if (money1 > money2) {
            System.out.println("使用以旧换新更省钱");
        } else {
            System.out.println("不使用以旧换新更省钱");
        }
        
    }
}
1.3.9、案例 4 (你是青年人吗)

需求: 给出你的年龄,通过程序判断你是否属于青年人?

提示: 世界卫生组织,经过对全球人体素质和平均寿命进行测定,对年龄划分标准作出了新的规定

java 任务生成逻辑 java业务逻辑怎么写在哪里_System_21

分析:

① 如何判断一个年龄是否属于青年人?

年龄要大于等于18,并且小于等于65

② 在Java中如何表示并且的关系呢?

age >=18 && age<=65

&&:是逻辑运算符,用来连接两个结果为boolean类型的表达式,都为true,结果为true,否则为false

实现步骤:

① 定义一个int类型的变量来表示你的年龄

② 用if语句格式2进行判断看你是否属于青年人

③ 根据是否是青年人给出不同的提示信息

代码演示:

/*
    需求:给出你的年龄,通过程序判断你是否属于青年人?
    提示:青年人的年龄范围 18~65
 */
public class IfTest04 {
    public static void main(String[] args) {
        //1:定义一个int类型的变量来表示你的年龄
        int age = 22;
        age = 100;

        //2:用if语句格式2进行判断看你是否属于青年人
        //3:根据是否是青年人给出不同的提示信息
        if(age>=18 && age<=65) {
            System.out.println("你是青年人");
        } else {
            System.out.println("你不是青年人");
        }
        
    }
}
1.3.10、逻辑运算符

Java 中常用的逻辑运算符有如下几种:

java 任务生成逻辑 java业务逻辑怎么写在哪里_if语句_22

代码演示:

/*
    逻辑运算符
 */
public class OperatorDemo02 {
    public static void main(String[] args) {
        //定义变量
        int i = 10;
        int j = 20;
        int k = 30;

        //逻辑与:&&
        System.out.println((i>j) && (i>k));//false && false
        System.out.println((i<j) && (i>k));//true && false
        System.out.println((i>j) && (i<k));//false && true
        System.out.println((i<j) && (i<k));//true && true
        System.out.println("-----------------------");

        //逻辑或:||
        System.out.println((i>j) || (i>k));//false || false
        System.out.println((i<j) || (i>k));//true || false
        System.out.println((i>j) || (i<k));//false || true
        System.out.println((i<j) || (i<k));//true || true
        System.out.println("-----------------------");

        //逻辑非:!
        System.out.println(!(i>j));//!false
        System.out.println(!!(i>j));//!!false
        System.out.println(!!!(i>j));//!!!false
        System.out.println(!!!!(i>j));//!!!!false
        
    }
}
1.3.11、三元运算符

格式: 关系表达式 ?表达式1 :表达式2;

范例: a > b ? a : b;

执行流程:

  • 首先计算关系表达式的值
  • 如果值为 true,表达式1的值就是运算结果
    如果值为 false,表达式2的值就是运算结果

代码演示:

/*
    三元运算符
 */
public class OperatorDemo03 {
    public static void main(String[] args) {
        int a = 10;
        int b = 20;

        int max = a > b ? a : b;

        System.out.println("较大的值是:" + max);
    }
}

简化记忆:

示例:a > b ? a : b;

a 大于 b 吗?true : false ;

1.3.12、三元运算符和 if 语句格式 2 的区别

代码演示:

/*
    三元运算符和if语句格式2的区别
 */
public class OperatorTest {
    public static void main(String[] args) {
        //定义两个int类型的变量
        int a = 10;
        int b = 20;

        if(a > b) {
            System.out.println("较大的值是:" + a);
        }else {
            System.out.println("较大的值是:" + b);
        }

        //三元运算符实现
        int max = a > b? a: b;
        System.out.println("较大的值是:" + max);
    }
}

总结一下:

  • 如果 if 语句控制的内容:是用变量纪录数据值,可以通过三元运算符改进

java 任务生成逻辑 java业务逻辑怎么写在哪里_执行流程_23

  • 如果 if 语句控制的内容是:是通过输出语句直接输出数据值,无法通过三元运算符改进

java 任务生成逻辑 java业务逻辑怎么写在哪里_System_24

1.4 选择语句之 switch

格式:

java 任务生成逻辑 java业务逻辑怎么写在哪里_执行流程_25

格式说明:

java 任务生成逻辑 java业务逻辑怎么写在哪里_if语句_26

执行流程:

java 任务生成逻辑 java业务逻辑怎么写在哪里_System_27

代码演示:

/*
    switch语句
 */
public class SwitchDemo {
    public static void main(String[] args) {
        //定义一个int类型的变量用来表示信号灯的状态(1表示红灯,2表示绿灯,3表示黄灯)
        int light = 1;
			//light = 2;
			//light = 3;
			//light = 4;

        //用switch语句实现交通信号灯案例
        switch (light) {
            case 1:
                System.out.println("红灯停");
                break;
            case 2:
                System.out.println("绿灯行");
                break;
            case 3:
                System.out.println("黄灯亮了等一等");
                break;
            default:
                System.out.println("交通信号灯故障,请在保证安全的情况下通行");
                break;
        }

    }
}

注意: 在switch语句中,如果case控制的语句体后面不写break,将出现穿透现象,在不判断下一个case值的情况下,向下运行,直到遇到break,或者整个switch语句结

以上内容大部分来着黑马,然后进行了下加工