Java学习日记06 - 运算符

简述

Java运算符按其功能来分,有算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符和其他运算符。

1、算术运算符
加减乘除:+ - * /
取余: %
int i = 101;
int j = i%10;
//j=1;
2、赋值运算符
赋值: =

赋值语句要从右往左看,是将 等号右边的值 赋给 左边的变量。

自加: ++ 和 自减: - -
int i = 1;
int j = i++;
//j=1;
//++在后则先运算再自加,自减同理
int i =1;
int j = ++i;
//j=2;
//++在前则先自加再运算,自减同理
3、比较运算符
等于: ==

比较两个变量的地址值,判断是否相等

int i = 1;
int j = 1;
System.out.println(i == j);		//true
大于、小于、大于等于、小于等于、不等于:> 、< 、>= 、<= 、!=
int i = 3;
System.out.println(i>3);		//false
System.out.println(i<3);		//false
System.out.println(i>=3);		//true
System.out.println(i<=3);		//true
System.out.println(i!=3);		//false
4、逻辑运算符

&& 、|| 、!

与: &&

运算符两端的判断条件 都成立 时则为 true , 否则为 false

int i = 1;
int j = 2;
System.out.println(i==1 && j==2);		//true
System.out.println(i!=1 && j==2);		//false
System.out.println(i==1 && j!=2);		//false
或: ||

运算符两端的判断条件 只要有一个成立 就为 true


int i = 1;
int j = 2;
System.out.println(i==1 && j==2);		//true
System.out.println(i!=1 && j==2);		//true
System.out.println(i==1 && j!=2);		//true
System.out.println(i!=1 && j!=2);		//false
非: !

可以理解为不是,取反的意思

int i = 1;
System.out.println( !(i==1) );		//i==1为true,!(i==1)则为false
5、位运算符

& 、|、 ^、 ~、 <<、 >>、 >>>

与运算符: &
int i = 12;
int j = i&5;
//j=4;

(00001100为 12 的2进制,5 、4同理)
同位置上的两个数都为1则为1
在这里插入图片描述

或运算符:|
int i = 12;
int j = i|5;
//j=13;

同位置上有一个数值为1则为1
在这里插入图片描述

异或运算符: ^
int i = 12;
int j = i^5;
//j=9;

同位置上两个值不同则为1
在这里插入图片描述

非运算符: ~
int i = 12;
int j = ~i;
//j= -13;

同位置上1变成0,0变成1
在这里插入图片描述PS:(当二进制第一位数为1时,这个数就是负数)

左移、右移、无符号右移: << 、>> 、>>>
int i = -12;
int j = i<<1;
int k = i>>1;
int z = i>>>1;
//j=-24; k=-6; z=6;

正数在第一位补 0,负数补 1,无符号右移不论正负都补0
在这里插入图片描述

6、三元表达式

布尔表达式?表达式1:表达式2
布尔表达式为 true 时执行表达式1,为 false 时执行表达式2

int i = 12;
int j = 5;
System.out.println(i<j?i:j);
//输出5,i<j成立就输出i,不成立就输出j
运算符实例
/*
*@description:输入密码,将其解码
*(解码规则为每位数乘5模3后,个位数与百位数交换,十位数与千位数交换)
*/
import java.util.Scanner;

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

		/**数值声明**/
		int P,P1,P2,P3,P4;

		/**数据赋值**/
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入密码(0-9999):");
		P = sc.nextInt();

		/**业务逻辑**/
		P1=P%10*5%3;
		P2=P/10%10*5%3;
		P3=P/100%10*5%3;
		P4=P/1000%10*5%3;
		P=P1*100+P2*1000+P3+P4*10;

		/**输出**/
		System.out.printf("你输入的密码是:\n%04d\n",P);		
	}
}

PS:%04d为格式化输出,让高位的 0 显示出来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值