Java核心基础:选择结构之if语句,附送案例源码

概述

如果我们想某些代码是在满足条件的情况下, 才能被执行, 此时就需要用到选择结构了, 选择结构也叫分支结构, 主要分为以下两种:

  • if语句
  • switch.case语句

分类

if语句一般用于范围的判断, 例如: 如果当前时间是0~8点, 小黑就和你说: 早上好, 如果当前时间是9 ~12点, 小黑就和你说: 中午好. 根据应用场景的不同(即: 分支个数不同), if语句的格式主要分为以下三种:

if语句(也叫: 单分支)

if.else语句(也叫: 双分支)

if.else if语句(也叫: 多分支)

单分支

单分支结构一般用来判断一种情况, 格式如下:

格式

if(关系表达式) {
    //语句体;
}

执行流程

先执行关系表达式, 看其结果是true还是false.

如果是true, 则执行大括号中的语句体.

如果是false, 则大括号中的语句体不执行.

图解

需求

定义变量time表示时间, 如果它的范围是在[0,8]之间, 就打印早上好, 否则不操作.

解释: [0, 8], 意思是说 0~8之间, 包含0, 也包含8, 这种写法属于"前闭后闭".

[0, 8), 意思是: 0~8之间, 包含0, 不包含8, 这种写法属于"前闭后开", 也叫: 包左不包右.

参考代码

public class IfDemo01 {
    public static void main(String[] args) {
        int time = 5;
        if(time >= 0 && time <= 8) {
            System.out.println("早上好");
        }
    }
}

双分支

双分支结构指的是if. else语句, 一般用来判断两种情况, 格式如下:

 格式

if(关系表达式) { //if的意思: 如果
    //语句体1;
} else {    //否则...
    //语句体2;
}

执行流程

先执行关系表达式, 看其结果是true还是false.

如果是true, 则执行语句体1.

如果是false, 则执行语句体2.

案例一: if格式二入门

需求

定义变量time表示时间, 如果它的范围是在0~8之间, 就打印早上好, 否则就打印中午好.

参考代码

public class IfDemo02 {
    public static void main(String[] args) {
        int time = 5;
        if(time >= 0 && time <= 8) {
            System.out.println("早上好");
        } else {
            System.out.println("中午好");
        }
    }
}

案例二: 判断奇偶数

需求

提示用户键盘录入一个数据并接收.

判断该数据是奇数还是偶数, 并将结果打印到控制台上.

参考代码

public class IfDemo03 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入一个整数: ");
        int num = sc.nextInt();
        if (num % 2 == 0) {
            System.out.println(num + "是偶数");
        } else {
            System.out.println(num + "是奇数");
        }
    }
}

记忆

if语句控制的语句体如果只有一行代码, 则该大括号可以省略不写.

  • :
  •  if(5 > 3)
  •  System.out.println("夯哥最纯洁!");

if语句控制的语句体如果只有一行代码, 则该大括号可以省略不写, 定义变量的语法除外.

  • :
  •  if(5 > 3)
  •  int a = 10; //这样写会报错, jvm会识别这样代码为两行: int a; a = 10;
  • :
  •  if(5 > 3) {
  •  int a;
  •  
  1. = 10; //这样写肯定会报错.

你省略if后边的大括号时, 有个问题一定要注意, 不要乱写分号.

  • :
  1. > 3) ; //这里如果写分号了, 就意味着if语句结束了.
  •  System.out.println("本意: 这行代码只有条件成立才会被执行");

多分支

多分支结构指的是if. else if语句, 一般用来判断多种情况, 格式如下:

格式

if(关系表达式1) {
    //语句体1;
} else if(关系表达式2){
    //语句体2;
} else if(关系表达式3){ //这里可以根据需求, 有多个else if语句
    //语句体3;
} else {
    //语句体n;
}

执行流程

先执行关系表达式1, 看其结果是true还是false.

如果是true, 则执行语句体1, 整个if语句结束.

如果是false, 则判断关系表达式2, 看其结果是true还是false.

如果是true, 则执行语句体2, 整个if语句结束.

如果是false, 则判断关系表达式3, ...以此类推.

如果所有的关系表达式都不成立, 则执行else语句的语句体n, 整个if语句结束.

 

 案例二: 打印星期

需求

提示用户录入[1, 7]之间的数字, 并接收.

根据用户录入的数字, 打印对应的星期, 格式如下:

    • 用户录入1, 打印"星期一"
    • 用户录入2, 打印"星期二"
    • ...以此类推
    • 用户录入非法数字, 打印"没有这样的日期"

参考代码

import java.util.Scanner;

public class IfDemo04 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入一个1 - 7之间的整数: ");
        int week = sc.nextInt();
        if (week == 1) {
        } else if(week == 2) {
            System.out.println("星期二");
        } else if(week == 3) {
            System.out.println("星期三");
        } else if(week == 4) {
            System.out.println("星期四");
        } else if(week == 5) {
            System.out.println("星期五");
        } else if(week == 6) {
            System.out.println("星期六");
        } else if(week == 7) {
            System.out.println("星期日");
        } else {
            System.out.println("没有这样的日期, 你是从火星来的吧!");
        }
    }
}

案例三: 发放奖励

需求

小明快要期末考试了,小明爸爸对他说,会根据他的考试成绩,送他不同的礼物.

假如你可以控制小明的得分,请用程序实现小明到底该获得什么样的礼物,并在控制台输出。

礼物标准如下:

    • 95~100 山地自行车一辆
    • 90~94 游乐场玩一次
    • 80~89 变形金刚玩具一个
    • 80以下 胖揍一顿

参考代码

import java.util.Scanner;

public class IfDemo05 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入小明的考试成绩: ");
        int score = sc.nextInt();
        if (score >= 95 && score <= 100) {
            System.out.println("奖励小明: 山地自行车一辆");
        } else if(score >= 90 && score < 95) {
            System.out.println("奖励小明: 游乐场玩儿一次");
        } else if(score >= 80 && score < 90) {
            System.out.println("奖励小明: 变形金刚玩具一个");
        } else if(score >= 0 && score < 80){
            System.out.println("奖励小明: 男女双混组合拳 + 扫帚棒法");
        } else {
            System.out.println("考试成绩录入有误.");
        }
    }
}

例四: 获取最大值

需求

提示用户录入3个整数, 并接收.

通过if语句获取这三个整数的最大值.

将结果打印到控制台上.

参考代码

import java.util.Scanner;

public class IfDemo06 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请录入第一个整数: ");
        int a = sc.nextInt();
        System.out.println("请录入第二个整数: ");
        int b = sc.nextInt();
        System.out.println("请录入第三个整数: ");
        int c = sc.nextInt();

        //方式一: if嵌套实现.
        int max = a;
        int max2 = a;
        if (a > b) {
            if (a > c) {
                max = a;
            } else {
                max = c;
            }
        } else {
            if(b > c) {
                max = b;
            } else {
                max = c;
            }
        }
        System.out.println("最大值: " + max);
        //方式二: if. else.if语句实现
        if (a > b && a > c) {
            max2 = a;
        } else if(b > a && b > c) {
            max2 = b;
        } else {
            max2 = c;
        }
        System.out.println("最大值: " + max2);
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值