Java运算符篇之逻辑运算符

举报
bug菌 发表于 2024/05/29 23:02:08 2024/05/29
【摘要】 咦咦咦,各位小可爱,我是你们的好伙伴 bug菌,今天又来给大家手把手教学Java SE系列知识点啦,赶紧出来哇,别躲起来啊,听我讲干货记得点点赞,赞多了我就更有动力讲得更欢哦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~

  咦咦咦,各位小可爱,我是你们的好伙伴 bug菌,今天又来给大家手把手教学Java SE系列知识点啦,赶紧出来哇,别躲起来啊,听我讲干货记得点点赞,赞多了我就更有动力讲得更欢哦!所以呀,养成先点赞后阅读的好习惯,别被干货淹没了哦~


🏆本文收录于「滚雪球学Java」专栏,专业攻坚指数级提升,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

环境说明:Windows 10 + IntelliJ IDEA 2021.3.2 + Jdk 1.8

前言

  在Java编程语言中,逻辑运算符用于进行逻辑判断和条件组合,是编写复杂条件表达式的重要工具。逻辑运算符主要用于布尔值之间的运算,通过这些运算符,可以对多个条件进行逻辑与、逻辑或和逻辑非的操作。

  本文将深入探讨Java中的逻辑运算符,包括其基本概念、用法、源代码解析以及实际应用场景案例等内容,帮助读者全面了解和掌握Java编程中逻辑运算符的使用方法。

摘要

  本文以Java编程语言为例,介绍逻辑运算符的基本概念、用法、源代码解析、应用场景案例、优缺点分析、类代码方法介绍、测试用例以及全文小结和总结,帮助读者全面了解和掌握Java中逻辑运算符的使用。

概述

  在Java中,逻辑运算符用于对布尔表达式进行操作。常见的逻辑运算符包括:

  • && (逻辑与)
  • || (逻辑或)
  • ! (逻辑非)

  这些运算符通常用于条件语句中,以实现更复杂的逻辑判断。

源代码解析

  下面是一个简单的Java程序,演示了逻辑运算符的使用:

public class LogicalOperatorsExample {
    public static void main(String[] args) {
        boolean a = true;
        boolean b = false;

        // 逻辑与
        System.out.println("a && b: " + (a && b)); // 输出: false

        // 逻辑或
        System.out.println("a || b: " + (a || b)); // 输出: true

        // 逻辑非
        System.out.println("!a: " + (!a)); // 输出: false
        System.out.println("!b: " + (!b)); // 输出: true

        // 复杂逻辑表达式
        boolean c = true;
        System.out.println("a && b || c: " + (a && b || c)); // 输出: true
    }
}

  运行上述代码,将输出以下结果:

a && b: false
a || b: true
!a: false
!b: true
a && b || c: true

代码解读:

  根据如上代码作出如下解析,以便于同学们更好的理解与掌握它:

  这段代码演示了Java中的逻辑运算符的使用。在第3行和第4行,我们定义了两个boolean类型的变量a和b,并分别赋值为true和false。在第7行,我们使用&&运算符计算a与b的逻辑与,并将结果打印出来。由于逻辑与的规则是只有两个操作数都为true时结果才为true,所以输出为false。在第10行,我们使用||运算符计算a与b的逻辑或,并将结果打印出来。由于逻辑或的规则是只要有一个操作数为true时结果就为true,所以输出为true。在第13行和第14行,我们使用!运算符对a和b进行逻辑非运算,并将结果打印出来。逻辑非的规则是取反操作数,即如果操作数为true则结果为false,如果操作数为false则结果为true。所以!a为false,!b为true。在第17行,我们定义了一个新的boolean类型的变量c,并赋值为true。在第18行,我们使用复杂的逻辑表达式a && b || c,并将结果打印出来。由于逻辑与的优先级高于逻辑或,所以首先计算a && b的逻辑与结果为false,然后与c的逻辑或结果为true。所以输出为true。

应用场景案例

场景一:验证用户登录

boolean isUsernameCorrect = true;
boolean isPasswordCorrect = false;

if (isUsernameCorrect && isPasswordCorrect) {
    System.out.println("Login successful");
} else {
    System.out.println("Login failed");
}

代码解读:

  根据如上代码作出如下解析,以便于同学们更好的理解与掌握它:

  该代码段首先声明了两个布尔变量isUsernameCorrect和isPasswordCorrect,并分别赋值为true和false。然后,使用if条件语句判断isUsernameCorrect和isPasswordCorrect的值是否都为true。如果是,则打印"Login successful";如果不是,则打印"Login failed"。根据代码逻辑,由于isPasswordCorrect的值为false,所以判断条件不满足,最终会输出"Login failed"。

场景二:检查权限

boolean isAdmin = false;
boolean isLoggedIn = true;

if (isLoggedIn && isAdmin) {
    System.out.println("Access granted");
} else {
    System.out.println("Access denied");
}

代码解读:

  根据如上代码作出如下解析,以便于同学们更好的理解与掌握它:

  根据给定的代码,如果 isLoggedIn 和 isAdmin 都为 true,则打印 “Access granted”,否则打印 “Access denied”。在这种情况下,isAdmin 的值为 false,isLoggedIn 的值为 true,所以输出结果为 “Access denied”。

优缺点分析

优点:

  • 逻辑运算符简单直观,适用于布尔值的逻辑判断。
  • 可以组合多个条件进行复杂逻辑判断,增强代码的可读性和可维护性。

缺点:

  • 对于复杂的逻辑表达式,可能会导致代码不易理解,需要特别注意逻辑运算的顺序和优先级。
  • 在条件判断中,如果逻辑表达式过于复杂,可能会影响代码的性能。

类代码方法介绍

public boolean and(boolean a, boolean b)

  • 功能:实现逻辑与操作。
  • 参数:a - 第一个布尔值,b - 第二个布尔值。
  • 返回值:两个布尔值的逻辑与结果。

public boolean or(boolean a, boolean b)

  • 功能:实现逻辑或操作。
  • 参数:a - 第一个布尔值,b - 第二个布尔值。
  • 返回值:两个布尔值的逻辑或结果。

public boolean not(boolean a)

  • 功能:实现逻辑非操作。
  • 参数:a - 一个布尔值。
  • 返回值:布尔值的逻辑非结果。

例如代码:

package com.example.javase.bugTest.operator.LogicalOperators;

/**
 * @Author bug菌
 * @Source 公众号:猿圈奇妙屋
 * @Date 2024-05-26 22:24
 */
public class LogicalOperatorsExample {
    public boolean and(boolean a, boolean b) {
        return a && b;
    }

    public boolean or(boolean a, boolean b) {
        return a || b;
    }

    public boolean not(boolean a) {
        return !a;
    }
}

测试用例

测试用例1:测试逻辑与方法

public class LogicalOperatorsTest {
    public static void main(String[] args) {
        LogicalOperatorsExample example = new LogicalOperatorsExample();
        boolean result = example.and(true, false);
        System.out.println("true && false: " + result); // 输出: false
    }
}

测试结果

  针对如上测试代码,这里我本地进行实际测试一波,结果仅供参考,有条件的同学们也可以自己本地实践一下。

测试代码解析

  针对如上测试代码,这里我再具体给大家讲解下,希望能够更透彻的帮助大家理解。

  如上代码是一个简单的测试类,用于测试逻辑运算符的使用。首先,创建了一个LogicalOperatorsExample对象example,然后调用其中的and方法,并传入true和false两个参数。and方法是一个自定义的方法,用于演示逻辑与运算符&&的使用。该方法会返回true与false的逻辑与运算结果。然后,将返回的结果赋值给result变量,并使用System.out.println输出结果。输出的结果为"true && false: false",表示true与false的逻辑与运算结果为false。

测试用例2:测试逻辑或方法

package com.example.javase.bugTest.operator.LogicalOperators;

/**
 * @Author bug菌
 * @Source 公众号:猿圈奇妙屋
 * @Date 2024-05-26 22:27
 */
public class LogicalOperatorsTest_01 {
    public static void main(String[] args) {
        LogicalOperatorsExample example = new LogicalOperatorsExample();
        boolean result = example.or(true, false);
        System.out.println("true || false: " + result); // 输出: true
    }
}

测试结果

  针对如上测试代码,这里我本地进行实际测试一波,结果仅供参考,有条件的同学们也可以自己本地实践一下。

测试代码解析

  针对如上测试代码,这里我再具体给大家讲解下,希望能够更透彻的帮助大家理解。

测试用例3:测试逻辑非方法

public class LogicalOperatorsTest {
    public static void main(String[] args) {
        LogicalOperatorsExample example = new LogicalOperatorsExample();
        boolean result = example.not(true);
        System.out.println("!true: " + result); // 输出: false
    }
}

测试结果

  针对如上测试代码,这里我本地进行实际测试一波,结果仅供参考,有条件的同学们也可以自己本地实践一下。

测试代码解析

  针对如上测试代码,这里我再具体给大家讲解下,希望能够更透彻的帮助大家理解。

  如上代码是一个测试类,测试了逻辑运算符的使用。首先,在main方法中创建了一个LogicalOperatorsExample对象实例example。然后,调用了example对象的not方法,并将true作为参数传入。not方法对参数取反,返回结果。最后,将结果打印输出。输出的结果是!true: false,即对true取非的结果为false

全文小结

本文详细介绍了Java中逻辑运算符的基本概念、用法、源代码解析、应用场景案例、优缺点分析、类代码方法介绍、测试用例等内容。通过学习本文,读者可以全面了解和掌握Java编程中逻辑运算符的使用方法。

总结

逻辑运算符在Java编程中起着至关重要的作用,它们可以用于布尔值之间的逻辑判断和条件组合。掌握逻辑运算符的使用方法对于编写条件判断和控制流语句是非常重要的,能够提高代码的可读性和维护性。

结尾

通过本文的学习,希望读者能够更加熟练地运用逻辑运算符,编写出高效、健壮的Java程序,并能够在实际的编程项目中灵活应用。祝愿读者在学习和工作中取得更进一步的成就!

  … …

  好啦,这期的内容就基本接近尾声啦,若你想学习更多,你可以看看专栏的导读篇《「滚雪球学Java」教程导航帖》,本专栏致力打造最硬核 Java 零基础系列学习内容,🚀打造全网精品硬核专栏,带你直线超车;欢迎大家订阅持续学习。功不唐捐,久久为功!

「赠人玫瑰,手留余香」,咱们下期拜拜~~

附录源码

  如上涉及所有源码均已上传同步在「Gitee」,提供给同学们一对一参考学习,辅助你更迅速的掌握。

☀️建议/推荐你

  无论你是计算机专业的学生,还是对编程感兴趣的跨专业小白,都建议直接入手「滚雪球学Java」专栏;该专栏不仅免费,bug菌还郑重承诺,只要你学习此专栏,均能入门并理解Java SE,以全网最快速掌握Java语言,每章节源码均同步「Gitee」,你真值得拥有;学习就像滚雪球一样,越滚越大,带你指数级提升。

  码字不易,如果这篇文章对你有所帮助,帮忙给bug菌来个一键三连(关注、点赞、收藏) ,您的支持就是我坚持写作分享知识点传播技术的最大动力。

  同时也推荐大家关注我的硬核公众号:「猿圈奇妙屋」 ;以第一手学习bug菌的首发干货,不仅能学习更多技术硬货,还可白嫖最新BAT大厂面试真题、4000G Pdf技术书籍、万份简历/PPT模板、技术文章Markdown文档等海量资料,你想要的我都有!

📣关于我

我是bug菌,CSDN | 掘金 | InfoQ | 51CTO | 华为云 | 阿里云 | 腾讯云 等社区博客专家,C站博客之星Top30,华为云2023年度十佳博主,掘金多年度人气作者Top40,51CTO年度博主Top12,掘金/InfoQ/51CTO等社区优质创作者;全网粉丝合计 20w+;硬核微信公众号「猿圈奇妙屋」,欢迎你的加入!免费白嫖最新BAT互联网公司面试真题、4000G PDF电子书籍、简历模板等海量资料,你想要的我都有,关键是你不来拿。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。