第十四届蓝桥杯集训——JavaC组第七篇——逻辑运算符

举报
红目香薰 发表于 2022/12/13 19:43:35 2022/12/13
【摘要】 ​ ​编辑第十四届蓝桥杯集训——JavaC组第七篇——逻辑运算符目录第十四届蓝桥杯集训——JavaC组第七篇——逻辑运算符逻辑运算符逻辑与逻辑或非逻辑运算法优先级练习题:逻辑运算符&&逻辑与‖逻辑或!逻辑非逻辑运算与位运算不同,逻辑运算的与和或都是两个与或的符号,当然,如果单独一个就能不能这么叫了,应该叫位运算符,位运算符在讲完进制转换的时候我再来将,大家能更好的理解,不然肯定都蒙圈了。逻辑...

 编辑

第十四届蓝桥杯集训——JavaC组第七篇——逻辑运算符


目录

第十四届蓝桥杯集训——JavaC组第七篇——逻辑运算符

逻辑运算符

逻辑与

逻辑或

逻辑运算法优先级

练习题:



逻辑运算符

  • &&逻辑与
  • ‖逻辑或
  • !逻辑非

逻辑运算与位运算不同,逻辑运算的与和或都是两个与或的符号,当然,如果单独一个就能不能这么叫了,应该叫位运算符,位运算符在讲完进制转换的时候我再来将,大家能更好的理解,不然肯定都蒙圈了。

逻辑与

&&两个与的符号,代表逻辑与,逻辑与前后两个表达式如果都为true则结果为true,如果有任何一个为false则结果为false;

逻辑与判断
A 符号 B 等于 结果
False && False = False
False && True = False
True && False = False
True && True = True

题目,判断某个月份是否符合地球公转周期。

分析,满足地球公转周期的月份是在1月~12月内,故而我们需要判断1<=month<=12,那么,我们就可以根据要求列出布尔表达式的写法,写法如下:

package com.item.action;

public class Action {

	public static void main(String[] args) {
		// 满足地球公转周期的月份
		int month = 5;// 判断月份是否在地球公转周期内
		//条件1、大于0
		boolean start = month > 0;
		//条件2、小于等于12,或直接小于13,因为是整数都行
		boolean end = month <= 12;
		//使用逻辑与判断,因为必须两个都满足才能是符合地球公转周期的月份
		boolean result = start && end;
		System.out.println(result);
	}
}

输出结果:

输出的结果是true代表5月份满足月份要求,故而此程序成立,咱们没有写错。

编辑

逻辑或

||两个竖线代表逻辑或,逻辑或的前后两个表达式只要有一个是true,结果就是true,当然,两个true那就更是true了,但是如果两个都是false,那就没办法了,肯定返回false了。

逻辑或运算
A 符号 B 等于 结果
False || False = False
False || True = True
True || False = True
True || True = True

示例:

我们使用一个特殊的表达式,判断x是否在x<-5,x>12的范围内。

package com.item.action;

public class Action {

	public static void main(String[] args) {
		// 这里先设一个值x=10,肯定不在{x<-5,x>12}中
		int x = 10;
		boolean left = x < -5;
		boolean right = x > 12;
		boolean result = left || right;
		System.out.println(result);

	}
}

结果如下:

编辑

 !,逻辑非,就是代表不,咱们在关系运算符中看到过,有一个叫做【!=】不等于的符号,与这个非有些类似,但是不同的是他是一元运算符。不等于是二元运算符。并且非是控制一个变量的,不等于是处理两个变量的。

测试:

package com.item.action;

public class Action {

	public static void main(String[] args) {
		// 这里先设一个值x=10,肯定不在{x<-5,x>12}中
		int x = 10;
		boolean left = x < -5;
		boolean right = x > 12;
		boolean result = left || right;
        //添加了一个!
		System.out.println(!result);
	}
}

当我们在结果前添加了一个【!】非的符号时发现,我们出现的结果反了过来,证明非的作用也就相当于取反操作了。

编辑

逻辑运算法优先级

!>&&>||

三个符号的优先级与C语言的类似,但是他们都没有()的级别高。

练习题:

我们用判断闰年的案例来练习逻辑运算符的使用:

1582年以来的置闰规则:

普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。
世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。
1582年以前的惯例:四年一闰;如果公元A年的A(正数)能被4整除,那么它就是闰年;如果公元前B年的B(正数)除以4余1,那么它也是闰年。

解析:

1、能被4整除,但不能被100整除,所以这两个之间的关系是【&&】。

2、世纪闰年是【1】的基础上需要加上是否能被400整除的判断,关系是【||】。

我们将两句分析编辑成代码,就能看到如下的内容了:

package com.item.action;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int year = sc.nextInt();
		sc.close();
		boolean one = year % 4 == 0;
		boolean two = year % 100 != 0;
		boolean three = year % 400 == 0;
		boolean result = one && two || three;
		System.out.println(result);
	}
}


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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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