Java基础&选择语句

简介: Java基础&选择语句

为了控制程序的执行流程,Java 就提供了一些流程控制语句,我们先来举例说明一下:


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

public class Test{
  public static void main(String[] args) {
     int left = 10;
     int right = 20;
     int mid = (left + right) / 2;
  }
}

选择结构:

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

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

循环结构:

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

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


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


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


2.1 顺序结构


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


执行流程图:

了解完顺序结构后,下面我们到IDEA中去演示一下:

/*
    顺序结构语句
 */
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("结束");
    }
}

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


2.2 选择语句之if


选择语句有两种结构:

  1. if 语句
  2. switch 语句

这里我们先来看 if 语句,它会根据判定的结果(真或假)决定执行某个分支的代码

举例说明一下:

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

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


2.2.1 if语句格式1


格式:

if( 满足条件的表达式 ){
  语句;
}

范例:

if( a > b ){
  System.out.println("a > b");
}

执行流程:

代码示例

/*
    if语句格式1
 */
public class IfDemo01 {
    public static void main(String[] args) {
        //定义一个变量,用来表示绿灯的状态
        boolean isGreen = true;
        isGreen = false;

        if(isGreen) {
            System.out.println("绿灯行");
        }
    }
}


2.2.2 if语句格式2和格式3


刚才我们通过if语句格式1进行了判断,是绿灯的时候,可以通行,但是不是绿灯的时候,没有告诉我不可以通行啊。所以,这里就产生了if语句的第二种格式,先在代码中演示,再回去总结:

/*
    if语句格式2
 */
public class IfDemo02 {
    public static void main(String[] args) {
        //定义一个变量,用来表示绿灯的状态
        boolean isGreen = true;
        isGreen = false;

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

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

格式:

if( 满足条件的表达式 ){
  语句A;
}else{
  语句B;
}

范例:

if( a > 10 ){
  System.out.println("a大于10");
}else{
  System.out.println("a小于等于10");
}

讲解完if语句格式2之后,我们到IDEA中再去看一段代码:

public class IfDemo03 {
    public static void main(String[] args) {
        //定义三个变量,表示交通信号灯的三种状态
        boolean isRed = true;
        boolean isGreen = true;
        boolean isYellow = true;
        
        if (isRed) {
            System.out.println("红灯停");
        }

        if (isGreen) {
            System.out.println("绿灯行");
        }

        if (isYellow) {
            System.out.println("黄灯亮了等一等");
        }
    }
}

很明显,这是不合理的,因为我们把三种状态都设置为true了,而实际生活中,只会有一种状态为true,怎么解决呢多种情况的判断呢?这个时候就产生了if语句的第三种格式,先在代码中演示,再回去总结:

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

        //红灯
//        isGreen = false;
//        isYellow = false;

        //绿灯
//        isRed = false;
//        isYellow = false;

        //黄灯
//        isRed = false;
//        isGreen = false;

        //出现了故障,信号灯都不亮了
        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("交通信号灯故障,请在保证安全的情况下通行");
        }
    }
}

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

if语句格式3:

格式:

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


2.2.4 关系运算符


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

了解了Java中的关系运算符之后,下面我们到IDEA中去使用一下:

/*
    关系运算符
 */
public class OperatorDemo01 {
    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
    }
}

最后,我们来总结一下,刚才在演示代码的时候有两个注意事项:

注意事项:

① 关系运算符的结果都是 boolean 类型, 要么是 true 要么是 false.

讲解完毕后,大家赶快动手练习一下吧。


2.2.5 案例2(奇偶数)


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


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


首先,我们来简单的分析一下:


分析:


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


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


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


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


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


实现步骤:


① 定义一个int类型的整数


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


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


知道了实现步骤,下面我们到IDEA中去实现一下:

/*
    需求:给定一个整数,请用程序实现判断该整数是奇数还是偶数,并在控制台输出该整数是奇数还是偶数
 */
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 + "是奇数");
        }
        
    }
}

讲解完毕后,大家赶快动手练习一下吧。


2.2.6 案例3(手机以旧换新)


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


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


首先,我们来简单的分析一下:


分析:


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


7988 - 1500


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


7988 * 0.8


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


if语句格式2


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


实现步骤:


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


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


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


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


知道了实现步骤,下面我们到IDEA中去实现一下:

/*
    需求:张三想买一台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("不使用以旧换新更省钱");
        }
        
    }
}

2.2.8 逻辑运算符


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

了解了Java中的逻辑运算符之后,下面我们到IDEA中去使用一下:

/*
    逻辑运算符
 */
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
        
    }
}

2.2.9 三元运算符


继续来学习三元运算符:

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

范例: a > b ? a : b;

执行流程:

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

了解了三元运算符的执行流程后,下面我们到IDEA中去使用一下:

/*
    三元运算符
 */
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);
    }
}

讲解完毕后,大家赶快动手练习一下吧。


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


这里呢,我们来讲解一下三元运算符和if语句格式2的区别,它们有什么区别呢?我们先到IDEA中进行讲解,然后再回来总结:

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

        //需求:获取两个数中的较大值
        //if语句实现
//        int max;
//        if (a > b) {
//            max = a;
//        } else {
//            max = b;
//        }
//        System.out.println("较大的值是:" + max);

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

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


2.3 选择语句之switch


来,继续啊,下面我们来学习选择语句中的switch语句。

格式:

格式说明:

执行流程:

了解完switch语句后,下面我们到IDEA中去使用一下:

/*
    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语句结束


相关文章
|
6月前
|
Java
Java中的卫语句
Java中的卫语句
116 0
|
20天前
|
Java 编译器
Java“语句不可达”解决
在Java编程中,“语句不可达”是一种编译器警告或错误,通常发生在代码中存在永远无法执行的语句时。这多是由于条件判断逻辑错误或冗余代码导致。解决方法包括:检查循环和条件语句的边界值、优化逻辑流程、移除未使用的代码分支,确保所有路径都能达到预期的目标状态。合理运用这些技巧可以提升代码质量和可读性。
|
3月前
|
Java
Java中的if语句
Java中的if语句
|
3月前
|
设计模式 算法 Java
Java中的if-else if-else语句
Java中的if-else if-else语句
|
3月前
|
存储 设计模式 Java
Java中的if-else语句:深入解析与应用实践
Java中的if-else语句:深入解析与应用实践
|
6月前
|
Java
Java中的if选择语句详解
Java中的if选择语句详解
67 1
|
6月前
|
Java 编译器 Apache
Java语言中的import语句:深入解析与应用
Java语言中的import语句:深入解析与应用
660 0
|
6月前
|
Java 开发者
Java中其他语句
Java中其他语句
36 0
|
6月前
|
Java
Java中swith语句
Java中swith语句
48 0
|
6月前
|
Java
Java中if语句
Java中if语句
41 0