【JAVASE】顺序和选择结构 上

简介: 【JAVASE】顺序和选择结构

1. 顺序结构


顺序结构比较简单,就是按照代码书写的顺序一行一行执行。


例如:

System.out.println("aaa");
System.out.println("bbb");
System.out.println("ccc");

这段代码的运行结果就是从上至下输出:


aaa
bbb
ccc

如果调整代码的书写顺序, 则执行顺序也发生变化:


System.out.println("aaa");
System.out.println("ccc");
System.out.println("bbb")

🍤 输出:


aaa
ccc
bbb


2. 分支结构


2.1 if 语句

语法格式1:

if(布尔表达式){
  // 语句
}

如果布尔表达式结果为 true,执行 if 中的语句,否则不执行。


比如:小明,如果这次考试考到90分或以上,给你奖励一个鸡腿。


    public static void main(String[] args) {
        int score = 92;
        if(score >= 90){
            System.out.println("吃个大鸡腿!!!");
        }
    }  

🍤 运行结果:


710376a3ee59a39f4c4b622c45516ec5_60aff82f52ce404ebba7a9fdb874c038.png


语法格式2:

if(布尔表达式){
  // 语句1
}else{
  // 语句2
}

如果布尔表达式结果为 true,则执行 if 中语句,否则执行 else 中语句。


比如:小明,如果这次考到90分以上,给你奖励一个大鸡腿,否则奖你一个大嘴巴子。


public static void main(String[] args) {
    int score = 89;
    if(score >= 90){
        System.out.println("吃个大鸡腿!!!");
    }else{
        System.out.println("挨大嘴巴子!!!");
     }
}

🍤 运行结果:


ca68b1de4658441c487176159983f476_ffd5f2d1e97442ce8c098c17bff0f929.png


语法格式3:


if(布尔表达式1){
  // 语句1
}else if(布尔表达式2){
  // 语句2
}else{
  // 语句3
}

表达式1成立,执行语句1,否则表达式2成立,执行语句2,否则执行语句3。


比如:我们定义一个分数区间来划分学生的成绩


分数在 [90, 100] 之间的,为优秀

分数在 [80, 90) 之前的,为良好

分数在 [70, 80) 之间的,为中等

分数在 [60, 70) 之间的,为及格

分数在 [ 0, 60) 之间的,为不及格

错误数据


代码实现:


 public static void main(String[] args) {
        int score=88;//学生成绩
        //判断
        if(score >= 90){
            System.out.println("优秀");
        }else if(score >= 80 && score < 90){
            System.out.println("良好");
        }else if(score >= 70 && score < 80){
            System.out.println("中等");
        }else if(score >= 60 && score < 70){
            System.out.println("及格");
        }else if(score >= 0 && score < 60){
            System.out.println("不及格");
        }else{
            System.out.println("错误数据");
        }
}

🍤 运行结果:


6506ee6abd79d1b991fed9a1ad0db233_0606070ecffb4a1ca48ef6c4dc96af76.png


实例1:判断一个数字是奇数还是偶数


首先需要知道判断奇偶的规则。数学上,我们判断奇偶数是以该数是否可以整除 2 为根据的,一个数能够整除 2,即计算的余数为 0,当除以 2 后的余数为 0 时,就说明了该数为偶数,否则是奇数。


我们已经了解判断奇偶数的方法,尝试写出代码:


public static void main(String[] args) {
        int num = 10;
        if (num % 2 == 0) {
            System.out.println("num 是偶数");
        } else {
            System.out.println("num 是奇数");
        }
}

🍤 运行结果:

71735c8e9b5f14dab9d04d0c4390c969_13ae1d257bda483195b23f0e4356de10.png


实例2:判断一个数字是正数,负数,还是零


大于 0 是正数,小于 0 是负数,所以这里只需要判断是大于、小于还是等于。


 public static void main(String[] args) {
        int num = 10;
        if (num > 0) {
            System.out.println("正数");
        } else if (num < 0) {
            System.out.println("负数");
        } else {
            System.out.println("0");
        }
}

🍤 运行结果:


257e1d9de254aea7f0550e783604f85a_1eb7d81f159b427d9408420b9386e48f.png


实例3:判断一个年份是否为闰年


普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。

世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。


public static void main(String[] args) {
        int year = 2000;
        if (year % 100 == 0) {
        // 判定世纪闰年
            if (year % 400 == 0) {
                System.out.println("是闰年");
            } else {
                System.out.println("不是闰年");
            }
        } else {
        // 普通闰年
            if (year % 4 == 0) {
                System.out.println("是闰年");
            } else {
                System.out.println("不是闰年");
            }
        }
}

🍤 运行结果:

c2c09985f8841bcbdf8eeab84f74fd4d_81c54ac9b9da42a0a04f06cae6814897.png


注:


  • 分号问题

这段代码的结果会是什么?

public static void main(String[] args) {
        int x = 20;
        if (x == 10);
        {
            System.out.println("hehe");
        }
}

🍤 运行结果:

b64825cf125fb33bc97eebb5f6caf237_2bfd741b29234aabb0d329dacb94e68e.png

有人可能会好奇,为什么这里 x 明明是20,不等于10啊,怎么还会打印 hehe 。

仔细观察就会发现:if 语句后跟有一个分号,这里导致分号成为了 if 语句的语句体,而 { } 中的代码已经成为了和一个 if 无关的代码块,所以会打印出来。

🍩分号代表语句的结束


相关文章
|
7月前
|
C语言
C语言 郝斌 数组的增删改排序代码
C语言 郝斌 数组的增删改排序代码
【JAVASE】顺序和选择结构 下
【JAVASE】顺序和选择结构
|
7月前
|
存储 Java C#
选择结构程序综合举例
选择结构程序综合举例
65 1
|
7月前
|
Java 测试技术 C语言
【JavaSE】逻辑控制:顺序、分支和循环结构
【JavaSE】逻辑控制:顺序、分支和循环结构
77 0
|
7月前
|
Java
LeetCode题解-合并K个有序数组-Java
合并K个有序数组-Java
121 0
|
存储 安全 Java
【JavaSE】String类的重点语法知识汇总
【JavaSE】String类的重点语法知识汇总
|
C语言 Python
Python顺序结果、选择结构、循环结构
Python顺序结果、选择结构、循环结构
|
算法 Java 开发者
【JavaSE专栏10】Java的顺序结构、选择结构和循环结构
【JavaSE专栏10】Java的顺序结构、选择结构和循环结构
|
搜索推荐 Java 索引
【JavaSE】Java基础语法(二十三):递归与数组的高级操作
1. 递归 1.1 递归 递归的介绍 以编程的角度来看,递归指的是方法定义中调用方法本身的现象 把一个复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解 递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算
|
Java Linux C语言
【JavaSE】逻辑控制语句
顺序结构比较简单,即程序按照代码书写的顺序一行一行执行下去。