运算符—逻辑运算符

article/2025/10/29 12:02:39

目录

5.逻辑运算符

5.1逻辑运算符概述

 5.2短路逻辑运算符


5.逻辑运算符

(学完之后要求能够使用逻辑运算符完成逻辑运算)

5.1逻辑运算符概述

在数学中,一个数据x,大于3,小于6,我们可以写为这样来表示:3<x<6

在Java中,需要把上面的狮子先进行拆解,在进行合并表达。

拆解为:x>3.x<6

合并为:x>3 && x<6

我们可以这样说,逻辑运算符,是用来连接关系表达式的运算符。

当然逻辑运算符也可以直接连接布尔类型的常量或者变量。

逻辑运算符分类:

 5.2短路逻辑运算符

 注意事项:

逻辑与&:无论左边真假,右边都要执行。

短路与&&:如果左边为真,右边执行;如果左边为假,右边不执行。

逻辑或|:无论左边真假,右边都要执行。

短路与||:如果左边为真,右边执行;如果左边为假,右边不执行。

最常用的逻辑运算符:&&||

代码演示:

/*逻辑运算符*/
public class OperatorDemo7 {public static void main(String[] args) {//定义变量int i = 10;int j = 20;int k = 30;//&逻辑与 有false则false演示System.out.println( (i > j) & (i > k) );//false & false得falseSystem.out.println( (i > j) & (i < k) );//false & true得falseSystem.out.println( (i < j) & (i < k) );//true & true得trueSystem.out.println( (i < j) & (i > k) );//true & false得falseSystem.out.println( (i == j) & (i == k) );//false & false得falseSystem.out.println( (i != j) & (i != k) );//true & true得trueSystem.out.println( (i >= j) & (i >= k) );//false & false得falseSystem.out.println( (i <= j) & (i <= k) );//true & true得trueSystem.out.println("--------------------");//|逻辑或 有true则true演示System.out.println( (i > j) | (i > k) );//false | false得falseSystem.out.println( (i > j) | (i < k) );//false | true得trueSystem.out.println( (i < j) | (i < k) );//true | true得trueSystem.out.println( (i < j) | (i > k) );//true | false得trueSystem.out.println( (i == j) | (i == k) );//false | false得falseSystem.out.println( (i != j) | (i != k) );//true | true得trueSystem.out.println( (i >= j) | (i >= k) );//false | false得falseSystem.out.println( (i <= j) | (i <= k) );//true | true得trueSystem.out.println("--------------------");//^逻辑异或 相同则为false,不同为tureSystem.out.println( (i > j) ^ (i > k) );//false ^ false得falseSystem.out.println( (i > j) ^ (i < k) );//false ^ true得trueSystem.out.println( (i < j) ^ (i < k) );//true ^ true得falseSystem.out.println( (i < j) ^ (i > k) );//true ^ false得trueSystem.out.println( (i == j) ^ (i == k) );//false ^ false得falseSystem.out.println( (i != j) ^ (i != k) );//true ^ true得falseSystem.out.println( (i >= j) ^ (i >= k) );//false ^ false得falseSystem.out.println( (i <= j) ^ (i <= k) );//true ^ true得falseSystem.out.println("--------------------");//!逻辑非 !false为true,!!false为false,!!!false为true,以此类推System.out.println( !(i > j) );//得trueSystem.out.println( !!(i > j) );//得falseSystem.out.println( !!!(i > j) );//得trueSystem.out.println( !!!!(i == j) );//得falseSystem.out.println("--------------------");//&&短路与 结论与&逻辑与相同 有false则false,否则为trueSystem.out.println( (i > j) && (i > k) );//false & false得falseSystem.out.println( (i > j) && (i < k) );//false & true得falseSystem.out.println( (i < j) && (i < k) );//true & true得trueSystem.out.println( (i < j) && (i > k) );//true & false得falseSystem.out.println( (i == j) && (i == k) );//false & false得falseSystem.out.println( (i != j) && (i != k) );//true & true得trueSystem.out.println( (i >= j) && (i >= k) );//false & false得falseSystem.out.println( (i <= j) && (i <= k) );//true & true得trueSystem.out.println("--------------------");//||短路或 结论与|逻辑或相同,有true则true,否则为falseSystem.out.println( (i > j) || (i > k) );//false || false得falseSystem.out.println( (i > j) || (i < k) );//false || true得trueSystem.out.println( (i < j) || (i < k) );//true || true得trueSystem.out.println( (i < j) || (i > k) );//true || false得trueSystem.out.println( (i == j) || (i == k) );//false || false得falseSystem.out.println( (i != j) || (i != k) );//true || true得trueSystem.out.println( (i >= j) || (i >= k) );//false || false得falseSystem.out.println( (i <= j) || (i <= k) );//true | |true得trueSystem.out.println("--------------------");//逻辑与&和短路与&&的区别演示//System.out.println( (i++ > 100) & (j++ > 100) );//false & false得falseSystem.out.println( (i++ > 100) && (j++ > 100) );//false && false得false 无区别/*但是把上面逻辑与的注释掉就得到i == 11;j == 20为什么呢?因为上面输出语句先运算i++再判断是否大于100,根据逻辑与的运算,第一条判断出来是false后再继续运算j++在判断是否大于100,在得到第二条false,则判定为false但是短路与是先判断第一条i++是否大于100,如果false,那就直接根据短路与的结论直接不用验证后面的关系表达式直接判断为false因为逻辑与的结论是有false则全false所以短路与只要判断出第一个false就不再对后面的关系表达式进行运算直接判定为false就是为什么叫短路与&&,短路或也同理。*/System.out.println("i:" + i);//得11System.out.println("j:" + j);//得20}
}


http://chatgpt.dhexx.cn/article/8MNmcPkR.shtml

相关文章

C语言关系运算和逻辑运算

一、关系运算 1.关系运算符 每个关系运算符对它左侧值和右侧值进行比较大小的运算 2.关系表达式 用关系运算符连接起来的式子。 若关系为真&#xff0c;关系表达式的值为1&#xff1b; 若关系为假&#xff0c;关系表达式的值为0&#xff1b; 3.优先级 关系运算符优先级低于算术…

C语言复习--逻辑运算符|| 和,!

&& 只有两个条件都为真时&#xff0c;才为真。||只要一个为真&#xff0c;就为真。 逻辑运算符很重要的法则是短路法则。 逻辑运算符的运算顺序都是从左到右计算。 && 当左侧条件为假时&#xff0c;就不计算右侧。 || 都左侧条件为真时&#xff0c;就不计…

C语言:关系运算符逻辑运算符

本节的所讲解的符号&#xff0c;大家在生活中应该都有用过&#xff0c;像我们去商场买东西&#xff0c;都会比较一下价格&#xff0c;是不是相等啊&#xff0c;哪家的贵&#xff0c;哪家的便宜啊。 在C语言中程序中也存在这样的比较&#xff0c;这个时候就需要用到关系运算符了…

C语言逻辑运算符详解

情景模式&#xff1a;现在研发出了一款新的软件&#xff0c;要求使用者必须成年&#xff0c;并且成绩大于等于60&#xff0c;该怎么办呢&#xff1f; 或许你会想到使用嵌套的 if 语句&#xff0c;类似下面这样的代码&#xff1a; #include <stdio.h> int main() {int a…

C 语言 逻辑运算符

文章目录 介绍逻辑运算符一览案例演示 介绍 用于连接多个条件&#xff08;一般来讲就是关系表达式&#xff09;&#xff0c;最终的结果要么是真(非 0 表示)&#xff0c;要么是 假(0 表示) 。 逻辑运算符一览 下表显示了 C 语言支持的所有逻辑运算符。假设变量 A 的值为 1&am…

☀️光天化日学C语言☀️(11)- 逻辑运算符 | 我是一个有逻辑的人

&#x1f649;饭不食&#xff0c;水不饮&#xff0c;题必须刷&#x1f649; C语言免费动漫教程&#xff0c;和我一起打卡&#xff01; &#x1f31e;《光天化日学C语言》&#x1f31e; LeetCode 太难&#xff1f;先看简单题&#xff01; &#x1f9e1;《C语言入门100例》&#…

C语言逻辑运算符介绍和示例

文章目录 1、逻辑运算符介绍2、逻辑表达式的书写3、不得不说的逻辑非4、获取视频教程5、版权声明 1、逻辑运算符介绍 在日常生活中&#xff0c;要做出某个决定&#xff0c;需要判断的条件往往不止一个&#xff0c;需要判断多个条件&#xff0c;例如超女选秀&#xff0c;参与选…

C语言按位逻辑运算符总结-与、或、非、异或

点击上方蓝字关注我&#xff0c;了解更多咨询 C中有按位逻辑运算符&#xff1a;按位取反、按位与、按位或、按位异或。这4个运算符可以用于整型&#xff0c;包括char类型。按位操作针对每一个位进行操作&#xff0c;不影响左右两边的位。4个运算符的作用总结如下&#xff1a; 一…

C语言逻辑运算符和||,一篇文章带你读懂逻辑表达式!

目录 逻辑运算符有哪些&#xff1f; 逻辑运算符的短路特性 逻辑运算符在表达式求值中的问题 逻辑运算符&&、||混合的不同情况 逻辑运算符有哪些&#xff1f; C 语言提供了以下三种逻辑运算符。 一元&#xff1a;&#xff01;&#xff08;逻辑非&#xff09;。 二…

勒让德符号判断二次剩余-C语言

近日备考学习二次剩余理论&#xff0c;其中了解到勒让德符号这个相比欧拉定理更加方便判断一个正整数在一个模数下是否为二次剩余&#xff1b; 基于勒让德符号理论的学习&#xff0c;本文旨在通过程序来实现基于勒让德符号的二次剩余判断方法&#xff1b; 本文着重点在于运算…

二次剩余入门

昨天训练的时候遇到一道题怎么也不会做&#xff0c;在网上搜了题解之后第一次听说了二次剩余&#xff0c;看了一天各种dalao的博客&#xff0c;在这里总结一下自己所理解的二次剩余及其用法。 1&#xff0c;什么是二次剩余&#xff1f; 2&#xff0c;二次剩余有什么用&#xff…

平方剩余(二次剩余)

平方剩余&#xff1a; 设p是奇素数(即大于2的素数)&#xff0c;如果二次同余式 有解&#xff0c;则a称为模p的平方剩余&#xff0c;否则a称为模p的平方非剩余(二次非剩余)(之所以规定p是大于2的素数&#xff0c;是因为p 2时解上面的二次同余式非常容易。 求出p 5&#xff…

二次剩余--欧拉准则

在 数论中&#xff0c; 二次剩余的 欧拉判别法&#xff08;又称 欧拉准则&#xff09;是用来判定给定的 整数是否是一个 质数的 二次剩余。 目录 1 叙述2 举例 2.1 例子一&#xff1a;对于给定数&#xff0c;寻找其为二次剩余的模数2.2 例子二&#xff1a;对指定的质数p…

二次剩余问题x的求解及代码实现(python)

一、问题引入 二次剩余是数论基本概念之一。它是初等数论中非常重要的结果&#xff0c;不仅可用来判断二次同余式是否有解&#xff0c;还有很多用途。C.F.高斯称它为算术中的宝石&#xff0c;他一人先后给出多个证明。 [1] 研究二次剩余的理论称为二次剩余理论。二次剩余理论…

二次剩余(学习笔记)

就是用来求解 x 2 ≡ n &VeryThinSpace; m o d &VeryThinSpace; p x^2\equiv n \bmod p x2≡nmodp的一个方法 对 p p p进行分类讨论&#xff1a; p 2 p2 p2 &#xff0c;则 x n xn xn p p p为奇素数 勒让德符号&#xff1a; ( a p ) { 1 a 在 模 p 意 义 下 是 二…

(转载)二次剩余(知识总结+板子整理)

思路来源 https://blog.csdn.net/kele52he/article/details/78897187&#xff08;二次剩余&#xff09; https://blog.csdn.net/stevensonson/article/details/85845334&#xff08;二次剩余&#xff09; https://blog.csdn.net/skywalkert/article/details/52591343?locat…

二次同余方程(二次剩余)

文章目录 一、介绍1.定义2.定理 二、判别1.勒让德符号&#xff08;Legendre Symbol&#xff09;2.欧拉判别准则&#xff08;Eulers criterion&#xff09;(1)内容(2)证明(3)注意 三、 x 2 ≡ n ( m o d x^2≡n(mod x2≡n(mod p ) p) p)——奇波拉算法&#xff08;Cipollas alg…

二次剩余 数论 勒让德

在数论中&#xff0c;特别在同余理论里&#xff0c;一个整数对另一个整数的二次剩余&#xff08;英语&#xff1a;Quadratic residue&#xff09;指的平方除以得到的余数。 当存在某个&#xff0c;式子成立时&#xff0c;称“是模的二次剩余” 当对任意&#xff0c;不成立时&…

二次剩余

title: 二次剩余 date: 2019-08-27 00:10:46 tags: 数论 一、定义&#xff08;Quadratic_residue&#xff09; 一个整数X对另一个整数p的二次剩余 d 注意这边的取模是 X 2 X^2 X2 和 d 都要对p取模噢 eg. 3 2 ≡ 2 ( m o d 7 ) 3^2≡2 (mod\ 7) 32≡2(mod 7),我们称 2是7的…

win10增加美式键盘

仅为做记录 我的系统为win10专业版 1809 首先进入语言首选项 选择添加语言 选择英语&#xff08;美国&#xff09; 之后选择拼写、键入和键盘设置 在输入的最下面选择高级键盘设置 选择语言栏选项 更改按键顺序选项中可以修改切换语言的快捷键 本质上是切换语言种类而不是输…