你容易忽略的运算符知识点

本文详细探讨了编程中的各种运算符,包括算术运算符的取模、除法和字符串连接特性,赋值运算符的使用技巧,比较运算符的注意事项,逻辑运算符的短路行为,以及位运算符和三元运算符的使用细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1_算数运算符

算术运算符需要注意的点:

(1)取模(取余) %

        取模运算结果的符号与被模数的符号相同。如果对负数取模,可以把模数负号忽略不记。

        例如:5%-2=1。 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。

 

(2)除号 /

        对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只 保留整数部分而舍弃小数部分。

        例如:int x=3510;x=x/1000*1000;  x的结果是3

  

(3)字符串连接 +

        “+”除字符串相加功能外,还能把非字符串转换成字符串。例如: System.out.println(“5+5=”+5+5); //打印结果是:5+5=55

        “+”为字符串连接操作时,只能使用在String与其他数据类型变量之间使用。

2_赋值运算符

赋值运算符:=

扩展:+=  -=  *=  /=  %=

赋值运算符需要注意的点:

(1)运算的结果不会改变变量本身的数据类型。

short s1 = 10;
//s1 = s1 + 2;
//编译失败,整数常量默认为int型,与s1相加结果自动类型提升为int型,int型赋值给short型需要强转

s1 += 2;//成功
System.out.println(s1);

(2)变量实现+2的操作,有几种方法?(前提:int num = 10;)
        //方式一:num = num + 2;
        //方式二:num += 2; (推荐)
        
(3)变量实现+1的操作,有几种方法?(前提:int num = 10;)
        //方式一:num = num + 1;
        //方式二:num += 1; 
        //方式三:num++; (推荐)

3_比较运算符

 比较运算符需要注意的点:

(1)比较运算符的结果都是boolean型,也就是要么是true,要么是false。 

       

(2)比较运算符判断是否相等用“==”,不要误写成“=” 。

boolean b1 = false; //区分好==和=的区别。
if(b1 == true) 
    System.out.println("结果为真"); 
else 
    System.out.println("结果为假");

        以上代码输出为:

 

(3)>  <  >=  <= :只能使用在数值类型的数据之间。

 

(4)== 和 !=:不仅可以使用在数值类型数据之间,还可以使用在其他引用类型变量之间。

 

4_逻辑运算符

 逻辑运算符需要注意的点:

(1)逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写 成x>3 & x<6 。

 

(2)“&”和“&&”的区别:

        &:左边无论真假,右边都进行运算;

        &&:如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。

       【推荐使用&&】

 

(3)“|”和“||”的区别:

        |:左边无论真假,右边都进行运算;

        ||:如果左边为假,右边参与运算,如果左边为真,那么右边不参与运算。

       【推荐使用||】

5_位运算符

 位运算符需要注意的点: 

(1) 位运算是直接对整数的二进制进行的运算。(位运算符操作的都是整型的数据)

 

(2)位运算符:

 

(3) << :在一定范围内,每向左移1位,相当于 * 2。

 

(4) >> :在一定范围内,每向右移1位,相当于 / 2。

 

(5)交换两个变量的值:

class BitTest {
	public static void main(String[] args) {

		int num1 = 10;
		int num2 = 20;
		System.out.println("num1 = " + num1 + ",num2 = " + num2);

		//方式一:定义临时变量的方式
		//推荐的方式
		int temp = num1;
		num1 = num2;
		num2 = temp;

		//方式二:好处:不用定义临时变量  
		//弊端:① 相加操作可能超出存储范围 ② 有局限性:只能适用于数值类型
		//num1 = num1 + num2;
		//num2 = num1 - num2;
		//num1 = num1 - num2;

		//方式三:使用位运算符
		//有局限性:只能适用于数值类型
		//num1 = num1 ^ num2;
		//num2 = num1 ^ num2;
		//num1 = num1 ^ num2;

		System.out.println("num1 = " + num1 + ",num2 = " + num2);

	}
}

6_三元运算符

三元运算符:(条件表达式)? 表达式1 : 表达式2

三元运算符需要注意的点:

(1)条件表达式的结果为boolean类型

 

(2) 表达式1 和 表达式2 要求是一致的,即

 

(3)三元运算符可以嵌套使用

//求n1,n2,m3中的最大数:
int n1 = 10;
int n2 = 20;
int n3 = 30;
int max3 = (((n1 > n2)? n1 : n2) > n3)? ((n1 > n2)? n1 : n2) : n3;

 

(4)凡是可以使用三元运算符的地方,都可以改写为if-else;反之,不成立。

 

(5)如果程序既可以使用三元运算符,又可以使用if-else结构,那么优先选择三元运算符。原因:简洁、执行效率高。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值