Java学习-java中的与或非


前言

在以后的开发工作当中,经常会使用到判断语句(如if等),当满足某一个或多个条件下就可以继续往下执行。对于多个条件时这难免就要需要逻辑运算符,常用的就是与(&)、或(|)、以及非(!),另外还有短路与(&&)、短路或(||)、以及异或(^),那它们之间有啥区别,又如何使用呢!


下面将讲述这些区别(下面案例可供参考):

一、 与(&)和短路与(&&)

(1)概念与区别

1、使用“与(&)"操作,表示在前后两个条件都要满足,结果才为“真”,任何一边为“假”,结果都为“假”,这里有点像数学里的“交集”概念,生活中的”并且“;(java中用"true"表示真,"false"表示假)
2、使用”短路与(&&)“操作,表示也进行”与“的操作,区别就是,当前面第一个条件为”“时,结果就直接为”“,后面条件就不再判断,这里就有点像电路中的”短路“,这种操作明显更加智能。

(2)代码示例

下面代码进行进一步说明。
代码如下(示例):

        int a = 10;
		int b = 20;
		int c = 30;
		int d = 40;
		System.out.println(a>b);//false
		System.out.println(c<d);//true
		System.out.println(a>b & c<d);
		System.out.println(a>b && c<d);

最后结果为false,因为”与“操作,两边要同时成立:
结果为false

二、或(|)与短路或(||)

(1)概念与区别

1、使用“或(|)"操作,表示在前后两个条件任何一个满足,结果就为“真”,只有都为”假“时,结果才为“假”,这里有点像数学里的“并集”概念,生活中的”或者“;
2、使用”短路或(||)“操作,表示也进行”或“的操作,区别就是,当前面第一个条件为”“时,结果就直接为”“,后面条件就不再判断,这种操作明显也更加智能。

(2)代码示例

下面代码进行进一步说明。
代码如下(示例):

        int a = 10;
		int b = 20;
		int c = 30;
		int d = 40;
		System.out.println(a>b);//false
		System.out.println(c<d);//true
		System.out.println(a>b | c<d);
		System.out.println(a>b || c<d);

最后结果为true,因为有一方为true,结果一定为true:
结果为true

三、非(!)

非(!),也就是取反,”真“取反为”假“,”假“取反为”真“!
代码如下(示例):

		boolean e = true;
		System.out.println(e);//true
		System.out.println(!e);

true取反,结果为false:
结果为false

四、异或(^)

异或(^)操作就是相同为0,不同为1;也就是说同时为假才为假。(在计算机中默认1为真,实际上是只要非零为真,0为假)
代码如下(示例):

        int a = 10;
		int b = 20;
		int c = 30;
		int d = 40;		
		System.out.println(a>b);//false
		System.out.println(c<d);//true
		System.out.println(a>b ^ c<d);

两边不同,不同为1,结果一定为真:
结果为真


总结

这里主要讲述了Java中的逻辑运算符:”与”、“或”、“非“,以及比较智能的”短路与“、”短路或“、”异或“,熟悉这些的使用,对工作具有重大的帮助,本文有不妥之处,请指教交流!

  • 14
    点赞
  • 86
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是Java正则表达式的“与”、“或”、“”的介绍和示例: 1. “与”关系:如果正则表达式的元素没有任何量词修饰,就是“与”关系。例如,正则表达式`abc`表示匹配包含连续的字符“abc”的字符串。 2. “或”关系:当元素都是单个字符时,就应该使用字符组`[...]`。例如,正则表达式`[abc]`表示匹配包含字符“a”、“b”或“c”的字符串。当元素不只单个字符时,就应该使用多选结构`(…|…)`.例如,正则表达式`cat|cut`表示匹配包含单词“cat”或“cut”的字符串。 3. “”关系:使用字符组`[^...]`表示不匹配字符组的任何一个字符。例如,正则表达式`[^abc]`表示匹配不包含字符“a”、“b”或“c”的字符串。 以下是Java正则表达式的示例: ```java // 匹配包含连续的字符“abc”的字符串 String regex1 = "abc"; String input1 = "abcdefg"; boolean isMatch1 = input1.matches(regex1); // 返回false // 匹配包含字符“a”、“b”或“c”的字符串 String regex2 = "[abc]"; String input2 = "def"; boolean isMatch2 = input2.matches(regex2); // 返回false // 匹配包含单词“cat”或“cut”的字符串 String regex3 = "cat|cut"; String input3 = "I have a cat and a cut."; boolean isMatch3 = input3.matches(regex3); // 返回true // 匹配不包含字符“a”、“b”或“c”的字符串 String regex4 = "[^abc]"; String input4 = "def"; boolean isMatch4 = input4.matches(regex4); // 返回true ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值