Java基础之运算符

运算符的分类

算术运算符

算数运算符
	+ - * / % ++ --
++,--的用法
	++:自加 对原有的数据进行+1
		a++ 先赋值后加
		++a 先加后赋值
	--:自减 对原有的数据进行-1
		a-- 先赋值后减 
		--a 先减后赋值	
int x = 4;
int y = (x++) + (++x) + (x*10);//x=6 y=70
     //  y4x5   x6y10   x6y70     

赋值运算符

基本赋值运算符
	=
复合赋值运算符
	= += -= *= /= %=
a += b;[等价a = a + b;]
//复合赋值运算符会进行类型转换
byte a = 1;
b += 2; //等价 b = (byte)(b + 2);
b++; //等价 b = (byte)(b + 1);
//面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由
short s = 1; s = s+1;
short s = 1; s += 1;
//第一个有问题 shrot类型的计算会自动转换为int型 所以应强制转换s=(short)(s+1);
//第二个没问题 += 会自动转换数据类型

比较运算符

比较运算符
	== != > < >= <= instanceof
注意事项:
	比较运算符的结果都是boolean类型
System.out.println(7 > 8);//false
System.out.println(7 <= 8);//true

逻辑运算符

逻辑运算符
	&(并且) &&(短路与) |(或者) ||(短路或) !(非) ^(异或)
注意事项:
	逻辑运算符一般用于boolean类型的表达式或值
结论:
	&(并且):有false则false 左边是false 右边继续执行
	&&(短路与):有false则false 左边是false 右边不执行
	|(或者):有true则true 左边是true 右边继续执行 
	||(短路或):有true则true 左边是true 右边不执行
	!(非):非false则true 非true则false 
	^(异或):相同为false 不同为true
		情侣关系:男男 女女 男女 女男
		一个数据被另一个数据位异或两次,该数本身不变
int x = 1,y = 1;
if(x++==2 & ++y==2)  {
	x =7;
}
System.out.println("x="+x+",y="+y);  
//不走if语句 & 两个表达式都执行 前假后真
//x=2 y=2

int x = 1,y = 1;
if(x++==2 && ++y==2){
	x =7;
}
System.out.println("x="+x+",y="+y);
//不走if语句 && 第一个表达式为假 则不走后面表达式 前假
//x=2 y=1

int x = 1,y = 1;
if(x++==1 | ++y==1){
	x =7;
}
System.out.println("x="+x+",y="+y);
//走if语句 | 第一个表达式为真 第二个表达式为假 前真后假
//x=7 y=2

int x = 1,y = 1;
if(x++==1 || ++y==1){
    x =7;
}
System.out.println("x="+x+",y="+y);
//走if语句 || 第一个表达式为真 不走第二个表达式 前真
//x=7 y=1

//^ 两个整数值互换
a=a^b;
b=a^b;	//a^b^b  b=a
a=a^b;  //a^b^a

位运算符

位运算符
	&(与) |(或) ^(异或) ~(按位取反) <<(左移) >>(右移) >>>(无符号右移)
注意事项:
	位运算是直接对二进制补码进行运算 运算效率高
结论:
    &:有0则0
    |:有1则1
    ^:相同则0,不同则1
    ~:按位取反  0变1 1变0  符号位也包含在内取反	
    <<: 4<<2 相当于 4*2^2=16
    >>: 16>>3 相当于 16/2^3=2

三目运算符

三目运算符
	(关系表达式) ? 表达式1 : 表达式2;
规则:
	关系表达式的值为true 则运算结果是表达式1
	关系表达式的值为false 则运算结果是表达式2
int a = 10;
int b = 20;
int max = a > b ? a : b;

键盘录入

导包
	import java.util.Scanner; 
	位置:在class上面。
创建键盘录入对象
	Scanner sc = new Scanner(System.in);
通过对象获取数据	
	int x = sc.nextInt();
import java.util.Scanner;
public class Test {
    public static void main(String[] args) {
        //获取两个数中最大值
        Scanner sc = new Scanner(System.in);
        System.out.println("输入第一个整数");
        int a = sc.nextInt();
        System.out.println("输入第二个整数");
        int b = sc.nextInt();
        int max = a > b ? a : b;
        System.out.println("最大值=" + max);
    }   
}        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值