栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaEE-Day04

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaEE-Day04

一、运算符(续) (一)逻辑运算符 1、逻辑“单与”(&)

条件必须同时满足才成立

特点:有false则false

public class OperatorDemo {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        int c = 5;

        System.out.println((a>b) & (a>c));//false & false
        System.out.println((a>b) & (ac));//true & false
    }
}

2、逻辑“单或”(|)

满足一个条件即可成立

特点:有true则true

public class OperatorDemo {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        int c = 5;

        System.out.println((a>b) | (a>c));//false | false
        System.out.println((a>b) | (ac));//true | false
    }
}

3、逻辑“异或”(^)

相同则为false,不同则为true

public class OperatorDemo {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        int c = 5;

        System.out.println((a>b) ^ (a>c));//false ^ false
        System.out.println((a>b) ^ (ac));//true ^ false
    }
}

4、逻辑“非”(!)

非true则false,非false则true

特点:偶数个非是它本身

public class OperatorDemo {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        int c = 5;

        System.out.println(!(a>b));//!false
        System.out.println(!!(a>b));//!!false
        System.out.println(!!!(a 
4、逻辑双与(&&)和逻辑单与(&)区别 

共同点:都是表示并列关系,有false则false

不同点:&&具有短路效果(逻辑双与&&如果左边是一个false,右边就不执行了)

public class OperatorDemo {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        System.out.println((++a)==3 & ((b--)==4));//&右边继续执行,结果为false且y自减
        System.out.println("a:"+a+",b:"+b);
    }
}

public class OperatorDemo {
    public static void main(String[] args) {
        int a = 3;
        int b = 4;
        System.out.println((++a)==3 && ((b--)==4));//&左侧false,右侧不执行
        System.out.println("a:"+a+",b:"+b);
    }
}

6、逻辑双或(||)和逻辑单或(|)的区别

共同点:有true则true,表示或的关系

不同点:逻辑双或(||)连接的左边表达式如果是true,右边就不执行了,具有短路效果

好处:提高逻辑判断执行效率,开发中经常使用逻辑双与(&&)和逻辑双或(||)

2、位运算符(使用补码计算) 位“与”(&)

有0,则0(使用补码计算)

例:3&4(计算出3和4对应的二进制数据:原码、反码、补码)

000000000000000000000000000000113的原码(正数原、反、补相同)
000000000000000000000000000001004的原码(正数原、反、补相同)
00000000000000000000000000000000结果:0(&计算:有0则0)
位“或”(|)

有1,则1(使用补码计算)

例:3|4

000000000000000000000000000000113的原码(正数原、反、补相同)
000000000000000000000000000001004的原码(正数原、反、补相同)
00000000000000000000000000000111结果:7(|计算:有1则1)
位“异或”(^)

相同则为0,不同则为1

例:3^4

000000000000000000000000000000113的原码(正数原、反、补相同)
000000000000000000000000000001004的原码(正数原、反、补相同)
00000000000000000000000000000111结果:7(^计算:相同为0,不同则1)
特点*

一个数据被另一个数据如果位异或两次,其值是它本身!

class OperatorDemo2{
	
	public static void main(String[] args){
			
			//定义两个变量
			int a = 10 ;
			int b = 20 ;
			
			System.out.println(a ^ b  ^ b) ;// a
			System.out.println(a ^ b  ^ a) ; //b
			
		
	}
	
}
试题

实现两个变量的数据进行交互

int a = 10 ;

int b = 20 ;

最终要将a和b进行互换

class OperatorTest{
	
	public static void main(String[] args){
		//有两个变量
		int a = 10 ;
		int b = 20 ;
		System.out.println("a:"+a) ;
		System.out.println("b:"+b) ;		
		System.out.println("---------------------------------------") ;		
		//方式1:使用中间第三方变量(最常用的一种方式:推荐使用第一种)
		//定义临时变量temp 
		//记录a的值
		
		int temp  = a ; //int temp = a  = 10
		//在将b的值赋值给a //
		a = b ;//a = 20 
		//将temp的赋值给b
		b = temp ; //10
		
		System.out.println("a:"+a) ;
		System.out.println("b:"+b) ;
		
		//方式2:使用位异或的特点^:一个数据被另一个数据位异或两次,其值是它本身
		//左边:a,b,a
		//右边都是: a^b
		
		
		
		
	}
}
(二)三元运算符(三目运算符) 1、格式

(表达式) ? 执行 true的结果 : 执行false 的结果;

首先判断表达式是否成立,如果成立,则执行true的结果;否则,执行false的结果;

2、使用
class OperatorDemo{
	
	public static void main(String[] args){
		//定义两个变量
		int a = 10 ;
		int b = 20 ;	
		//比较较两个数据中的最大值
		//(表达式)?执行 true的结果:执行false 的结果;
		//定义最终结果变量
		int max = (a>b)?a:b;
		System.out.println(max) ; //20
		System.out.println("------------------------------------") ;
		//a和b中的最小值
		int min = (ay)?x:y ;
		//然后使用temp和z进行三元运算符
		//定义接收结果变量max2
		int max2 =(temp >z)? temp : z ;
		System.out.println("三个数据中的最大值是:"+max2) ;
		System.out.println("------------------------------------") ;
		
		//方式2:三元运算符是可以嵌套的 (一步走)
		//定义最终变量max3
		int max3 = (x >y)?((x>z)?x:z):((y>z)?y:z) ; //推荐第一种方式
		//int max3 = x >y?x>z?x:z:y>z?y:z ;
		System.out.println("三个数据中的最大值是:"+max3) ;
		
		
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/692871.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号