前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >JavaSE中的if语句、switch语句:如何控制程序流程?

JavaSE中的if语句、switch语句:如何控制程序流程?

原创
作者头像
喵手
发布2023-11-21 11:41:38
1530
发布2023-11-21 11:41:38
举报
文章被收录于专栏:Java进阶实战Java进阶实战

theme: healer-readable

highlight: a11y-dark


哈喽,各位小伙伴们,你们好呀,我是喵手。

  今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一个人虽可以走的更快,但一群人可以走的更远。

  我是一名后端开发爱好者,工作日常接触到最多的就是Java语言啦,所以我都尽量抽业余时间把自己所学到所会的,通过文章的形式进行输出,希望以这种方式帮助到更多的初学者或者想入门的小伙伴们,同时也能对自己的技术进行沉淀,加以复盘,查缺补漏。

小伙伴们在批阅的过程中,如果觉得文章不错,欢迎点赞、收藏、关注哦。三连即是对作者我写作道路上最好的鼓励与支持!

前言

  Java作为一门广泛应用的开发语言,其支持的条件语句丰富多样。其中最基本的就是if语句和switch语句,这两种语句都可以用于根据不同的条件执行不同的代码块。在日常开发中,对于一些需要基于条件来进行判断和控制的业务逻辑,if和switch语句都是必不可少的工具。

摘要

  本文主要围绕JavaSE中的条件语句:if语句、switch语句进行介绍和解析。在介绍的同时,我们还会结合实际的应用场景,解析if和switch语句的优缺点,以及在类中定义if和switch语句的方法和标准等。

正文

简介

if语句

  if语句是一种基于条件判断的控制语句,用于根据不同的条件执行不同的代码块。if语句通常的语法形式如下:

代码语言:java
复制
if (condition) {
    // 如果条件成立,执行此代码块
} else {
    // 如果条件不成立,执行此代码块
}

  其中,condition是需要进行判断的条件表达式,如果表达式的值为true,则执行if后面的代码块,否则执行else后面的代码块。

switch语句

  switch语句也是一种基于条件判断的控制语句,用于根据不同的表达式值执行不同的代码块。switch语句通常的语法形式如下:

代码语言:java
复制
switch (expression) {
    case value1:
        // 如果expression的值等于value1,执行此代码块
        break;
    case value2:
        // 如果expression的值等于value2,执行此代码块
        break;
    default:
        // 如果expression的值不等于任何一个case中的值,执行此代码块
        break;
}

  其中,expression是需要进行判断的表达式,case后面的value是需要匹配的值。如果expression的值等于某一个case后面的value,则执行对应的代码块,并且程序会跳出switch语句。如果expression的值不等于任何一个case中的值,则执行default后面的代码块。

源代码解析

if语句

我们来看一个简单的if语句的例子,代码如下:

代码语言:java
复制
int num = 10;
if (num > 0) {
    System.out.println("num是正数。");
} else {
    System.out.println("num是负数或0。");
}

  在这个例子中,我们定义了一个int类型的变量num,并且使用if语句对num进行了判断。如果num的值大于0,执行if后面的代码块,输出"num是正数。";否则执行else后面的代码块,输出"num是负数或0。"。

  根据如上代码测试结果如下:

在这里插入图片描述
在这里插入图片描述

  根据如上代码分析可得:

  这是一段Java语言代码,它的作用是判断变量num的值是否为正数,如果是则输出"num是正数。",否则输出"num是负数或0。"。在这段代码中,使用了if-else语句来进行条件判断,当num大于0时,执行if语句块中的代码,即输出"num是正数。";否则执行else语句块中的代码,即输出"num是负数或0。"。

switch语句

我们再来看一个简单的switch语句的例子,代码如下:

代码语言:java
复制
int num = 2;
switch (num) {
    case 1:
        System.out.println("星期一。");
        break;
    case 2:
        System.out.println("星期二。");
        break;
    case 3:
        System.out.println("星期三。");
        break;
    case 4:
        System.out.println("星期四。");
        break;
    case 5:
        System.out.println("星期五。");
        break;
    case 6:
        System.out.println("星期六。");
        break;
    case 7:
        System.out.println("星期日。");
        break;
    default:
        System.out.println("参数错误。");
        break;
}

  在这个例子中,我们定义了一个int类型的变量num,并且使用switch语句对num进行了判断。根据num的值的不同,分别执行不同的代码块并输出相应的结果。

  根据如上代码测试结果如下:

在这里插入图片描述
在这里插入图片描述

  根据如上代码分析可得:

  这段代码是一个 Switch 语句,用于在给定整数变量 num 的情况下,输出对应的星期几。在这个例子中,num 的值为 2,所以输出 "星期二。" 。如果 num 不在 1-7 的范围内,就会执行 default 中的代码块,输出 "参数错误。"。

应用场景案例

if语句

  if语句常用于对某个变量或表达式的值进行判断,根据不同的情况执行不同的代码块。下面是一个应用if语句进行身份认证的例子:

代码语言:java
复制
package com.example.javase.se.controlProgram;

import java.util.Scanner;

/**
 * @Author ms
 * @Date 2023-11-12 22:08
 */
public class IfTest {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入用户名:");
        String username = scanner.next();
        System.out.println("请输入密码:");
        String password = scanner.next();

        if ("admin".equals(username) && "123456".equals(password)) {
            System.out.println("身份认证成功。");
        } else {
            System.out.println("身份认证失败,请重新输入。");
        }
    }
}

  在这个例子中,我们使用Scanner类从控制台获取用户输入的用户名和密码,然后使用if语句对用户名和密码进行判断。如果用户名为"admin"并且密码为"123456",则输出"身份认证成功。",否则输出"身份认证失败,请重新输入。"。

  根据如上代码测试结果如下:

在这里插入图片描述
在这里插入图片描述

  根据如上代码分析可得:

  这段代码是一个简单的用户身份认证程序,通过控制台输入用户名和密码进行身份认证。如果输入的用户名是"admin"且密码是"123456",则认证成功,输出"身份认证成功";否则认证失败,输出"身份认证失败,请重新输入"。注意,在比较字符串时应该使用equals()方法。

switch语句

  switch语句常用于对某个变量或表达式的值进行判断,根据不同的情况执行不同的代码块。下面是一个应用switch语句进行计算器运算的例子:

代码语言:java
复制
package com.example.javase.se.controlProgram;

import java.util.Scanner;

/**
 * @Author ms
 * @Date 2023-11-12 22:08
 */
public class SwichTest {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入第一个数字:");
        double num1 = scanner.nextDouble();
        System.out.println("请输入第二个数字:");
        double num2 = scanner.nextDouble();
        System.out.println("请输入运算符:");
        char operator = scanner.next().charAt(0);

        double result = 0.0;
        switch (operator) {
            case '+':
                result = num1 + num2;
                break;
            case '-':
                result = num1 - num2;
                break;
            case '*':
                result = num1 * num2;
                break;
            case '/':
                result = num1 / num2;
                break;
            default:
                System.out.println("无效的运算符。");
                break;
        }

        System.out.println("计算结果为:" + result);
    }
}

  在这个例子中,我们使用Scanner类从控制台获取用户输入的两个数字和运算符,然后使用switch语句对运算符进行判断。根据运算符的不同,我们执行不同的计算,并输出计算结果。

  根据如上代码测试结果如下:

在这里插入图片描述
在这里插入图片描述

  根据如上代码分析可得:

  这是一个Java的计算器程序,读取用户输入的两个数字和运算符,然后进行相应的运算并输出结果。程序采用了switch语句来判断不同的运算符,并利用对应的运算符计算结果。用户可以在控制台输入数字和运算符,程序会自动计算并输出结果。

优缺点分析

if语句

优点
  1. 语法简单,易于理解和使用。
  2. 可以根据不同的条件执行不同的代码块,灵活性高。
  3. 可以嵌套使用,实现较为复杂的控制逻辑。
缺点
  1. 如果条件比较多,if语句嵌套层数较深,代码可读性会降低。
  2. 如果条件表达式判断不当,可能会造成逻辑缺陷或者程序出错。

switch语句

优点
  1. 可以根据不同的表达式值执行不同的代码块,可读性高。
  2. 语法简单,易于理解和使用。
  3. 效率高,因为编译器可以使用查找表优化switch语句的执行。
缺点
  1. 可以执行的操作有限,只适合于一些具有固定值的表达式的判断。
  2. 每个case需要加上break语句,否则会导致程序执行错误。

类代码方法介绍

定义if语句

  在类中定义if语句的方法非常简单,只需要根据语法要求编写if语句即可。下面是一个类中定义if语句的例子:

代码语言:java
复制
public class Demo {
    public static void main(String[] args) {
        int num = 10;
        if (num > 0) {
            System.out.println("num是正数。");
        } else {
            System.out.println("num是负数或0。");
        }
    }
}

  根据如上代码测试结果如下:

在这里插入图片描述
在这里插入图片描述

  根据如上代码分析可得:

  这段代码定义了一个名为Demo的类,并在main方法中定义了一个整型变量num并赋值为10。接着使用if结构进行判断,如果num大于0,就通过System.out.println()方法输出"num是正数。";否则输出"num是负数或0。"。最终结果将是"num是正数。"。

定义switch语句

  在类中定义switch语句也非常简单,只需要根据语法要求编写switch语句即可。下面是一个类中定义switch语句的例子:

代码语言:java
复制
public class Demo {
    public static void main(String[] args) {
        int num = 6;
        switch (num) {
            case 1:
                System.out.println("星期一。");
                break;
            case 2:
                System.out.println("星期二。");
                break;
            case 3:
                System.out.println("星期三。");
                break;
            case 4:
                System.out.println("星期四。");
                break;
            case 5:
                System.out.println("星期五。");
                break;
            case 6:
                System.out.println("星期六。");
                break;
            case 7:
                System.out.println("星期日。");
                break;
            default:
                System.out.println("参数错误。");
                break;
        }
    }
}

  在这个例子中,我们同样定义了一个Demo类,并且在main函数中定义了一个switch语句来根据不同的数值输出对应的结果。与if语句不同的是,switch语句需要使用case关键字来定义不同的条件分支,并且每个case分支需要以break结束。同时,可以使用default分支处理所有未被前面任何一个case分支匹配的值。

  根据如上代码测试结果如下:

在这里插入图片描述
在这里插入图片描述

  根据如上代码分析可得:

  该代码为一个Java程序,包含一个名为Demo的类,其中有一个main方法。在main方法中,定义了一个整型变量num并赋值为6。然后使用了switch语句,根据num的值来判断输出哪一个星期几。如果num的值为1,则输出“星期一。”,如果num的值为2,则输出“星期二。”,以此类推。如果num的值不在1到7之间,则输出“参数错误。”。在每个case分支中使用了break语句来跳出switch语句。最终运行该程序,输出“星期六。”。

标准和最佳实践

  在使用if和switch语句时,需注意以下标准和最佳实践:

  1. 尽可能避免使用过多的if语句嵌套,可以使用多个else if语句来代替。
  2. 在使用switch语句时,确保每个case分支都有对应的break语句。
  3. 使用if语句时,将常量写在等式左边可以避免出现空指针异常。
  4. 在对字符串进行比较时,使用equals方法而不是"=="运算符。
  5. 在处理复杂的控制逻辑时,可以考虑使用状态模式或策略模式等设计模式,避免使用过多的if和switch语句。

小结

  1. if语句用于根据不同的条件执行不同的代码块,switch语句用于根据不同的表达式值执行不同的代码块。
  2. if语句有灵活性强的优点,但是当条件比较多时,if语句的嵌套层数较深,代码可读性会降低。switch语句具有可读性高的优点,但是每个case需要加上break语句,否则会导致程序执行错误。
  3. 在使用if和switch语句时,需要注意一些标准和最佳实践,如避免使用过多的if语句嵌套、确保每个case分支都有对应的break语句、使用equals方法而不是"=="运算符等。
  4. 在处理复杂的控制逻辑时,可以考虑使用状态模式或策略模式等设计模式,避免使用过多的if和switch语句。

总结

  在JavaSE中,if语句和switch语句都是非常实用的条件语句。if语句通常用于根据不同的条件执行不同的代码块,而switch语句通常用于根据不同的表达式值执行不同的代码块。在实际应用中,if和switch语句都有其优缺点,需要根据具体情况选择合适的语句。同时,在使用if和switch语句时,需要注意一些标准和最佳实践,以保证代码的可读性、可维护性和安全性。

... ...

文末

好啦,以上就是我这期的全部内容,如果有任何疑问,欢迎下方留言哦,咱们下期见。

... ...

学习不分先后,知识不分多少;事无巨细,当以虚心求教;三人行,必有我师焉!!!

wished for you successed !!!


⭐️若喜欢我,就请关注我叭。

⭐️若对您有用,就请点赞叭。

⭐️若有疑问,就请评论留言告诉我叭。

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 摘要
  • 正文
    • 简介
      • if语句
      • switch语句
    • 源代码解析
      • if语句
      • switch语句
    • 应用场景案例
      • if语句
      • switch语句
    • 优缺点分析
      • if语句
      • switch语句
    • 类代码方法介绍
      • 定义if语句
      • 定义switch语句
    • 标准和最佳实践
      • 小结
      • 总结
      • 文末
      相关产品与服务
      腾讯云代码分析
      腾讯云代码分析(内部代号CodeDog)是集众多代码分析工具的云原生、分布式、高性能的代码综合分析跟踪管理平台,其主要功能是持续跟踪分析代码,观测项目代码质量,支撑团队传承代码文化。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档