java运算符表达式与语句

基本运算

举例一。1:最简单加减法运算

举例一。2:变量赋值

public class OperateDemo01
{
	public static void main(String args[]){
		int num  = 22;
		System.out.println("第一次输出:num" + num);
		num = num - 3;  //  修改变量内容
		System.out.println("第二次输出:num" + num);
	}
}

一元操作符


举例二:正、负、取反

public class OperateDemo02
{
	public static void main(String args[]){
		boolean b = false;
		int x = 10;
		int y = -30;
		System.out.println("b = " + b + ", !b = " + !b);   // 取反操作
		System.out.println("x = " + x +", -x = " + -x);     // 使用负号
		System.out.println("y = " + y +",  +y = " + +y);  // 使用正号

	}
}


算术运算符
加减乘除


取模运算符
public class OperateDemo03
{
	public static void main(String args[]){
		int i = 10;
		int j = 3;
		System.out.println(i + " + " + j + " = "  + (i + j));  //加法操作
		System.out.println(i + " - " + j + " = "  + (i - j));  //减法操作
		System.out.println(i + " * " + j + " = "  + (i * j));  //乘法操作
		System.out.println(i + " / " + j + " = "  + (i / j));  //除法操作
		System.out.println(i + " % " + j + " = "  + (i % j));  //取模操作
	}
}

关系运算符


举例四:大于小于

public class OperateDemo04
{
	public static void main(String args[]){
		System.out.println("3 > 1 = " + (3 > 1));   //使用大于号
		System.out.println("3 < 1 = " + (3 < 1));   //使用小于号
		System.out.println("3 >= 1 = " + (3 >= 1));   //使用大于等于号
		System.out.println("3 <= 1 = " + (3 <= 1));   //使用小于等于号
		System.out.println("3 == 1 = " + (3 == 1));   //使用等于号
		System.out.println("3 != 1 = " + (3 != 1));   //使用不等
	}
}


if判断语句


举例五:

public class OperateDemo05
{
	public static void main(String args[]){
		if(5>2){
			System.out.println("条件成立:5大于2");
		}
		if(true){
			System.out.println("直接写的true");
		}
		if((3+6)==(3-6))
		System.out.println("这是不可能成立的");   //  如果只有一条语句可以不写括号。
	}
}


自增、自减


举例六

public class OperateDemo06
{
	public static void main(String args[]){
		int a = 3 , b = 3;  // 定义两个变量a和b
		System.out.println("a = " + a);
		// a++ 先计算,后自增
		System.out.println("\t a++ = " + (a++) + ", a = " + a);
		// ++b 先自增,后计算
		System.out.println("\t ++b = " + (++b) + ", b = " + b);
	}
}



++x,--x尽量不要出现


逻辑运算符

&&,||,真值表


举例七

public class OperateDemo07
{
	public static void main(String args[]){
		boolean a = true;
		boolean b = false;
		System.out.println("a || b  = " + (a || b));
		System.out.println("a | b = " + (a | b));
		System.out.println("a && b = " + (a && b));
		System.out.println("a & b = " + (a & b));

	}
}


使用if语句进行多条件判断

举例八

public class OperateDemo08
{
	public static void main(String args[]){
		int score = 50;  //定义成绩
		if((score<0) || (score>100)){
			System.out.println("输入的成绩有错误");
		}
		if((score<60) && (score>49)){
			System.out.println("成绩不及格准备补考吧!");
		}
	}
}


“短路与”与“短路或”

典型错误举例九

public class OperateDemo09
{
	public static void main(String args[]){
		int x = 10/0;   //定义变量
		System.out.println("x = " + x);
	}
}


应该错误进行验证

与的举例十

public class OperateDemo10
{
	public static void main(String args[]){
		if(10!=10&10/0==0){
			System.out.println("条件满足");		
		}
	}
}



短路与的举例十一

public class OperateDemo11
{
	public static void main(String args[]){
		if(10!=10&&10/0==0){
			System.out.println("条件满足"); // 使用&&短路与
		}
	}
}


 

“短路与”只要第一个条件满足,之后的程序代码都不再执行了。

或的举例十二

public class OperateDemo12
{
	public static void main(String args[]){
		if(10!=10|10/0==0){
			System.out.println("条件满足"); // 使用“|”非短路或
		}
	}
}


 

短路或的举例十三

public class OperateDemo13
{
	public static void main(String args[]){
		if(10==10||10/0==0){
			System.out.println("条件满足"); // 使用“||”短路或
		}
	}
}


 

经过以上分析之后,可以总结出,短路与和短路或是最经常使用到一种代码。

 

括号的使用


作用可以改变优先级
3+5+4*6-7 //默认是先乘除后加减
(3+5+4)*(6-7)

举例十四

public class OperateDemo14
{
	public static void main(String args[]){
		int result1 = 3 + 5 + 4 * 6 -7;
		int result2 = (3 + 5 + 4) *(6 - 7);
		System.out.println("3 + 5 + 4 * 6 -7 = " + result1);
		System.out.println("(3 + 5 + 4) *(6 - 7) = " + result2);
	}
}


 


位运算符


如果要想时行位操作,则需要先将十进制的数据变为二进制数据,除以2的形式,求余数。

异或:相反为1,相同为0
举例十五

public class OperateDemo15
{
	public static void main(String args[]){
		int x = 3;  //3的二进制数据 00000000 00000000 00000000 00000011   3
		int y = 6;  //6的二进制数据 00000000 00000000 00000000 0000110     6
		System.out.println(x & y);  //与 00000000 00000000 00000000 00000010    2  这里容易出错
		System.out.println(x | y);   //或 00000000 00000000 00000000 00000111  7   这里容易出错
		System.out.println(x ^ y);   //异或 00000000 00000000 00000000 00000101   5   这里容易出错
	}
}


 

int x = 3;                     // 3的二进制数据: 00000000 00000000 00000000 00000011
int y = 6;                     // 6的二进制数据: 00000000 00000000 00000000 00000110

System.out.println(x & y);                //与     00000000 00000000 00000000 00000010
System.out.println(x |  y);                //或     00000000 00000000 00000000 00000111
System.out.println(x ^  y);                //异     00000000 00000000 00000000 00000101

还可以通过“~”取反码

举例十六

public class OperateDemo16
{
	public static void main(String args[]){
		int x = -3;   //应该以补码的形式存在,补码 = 反码 + 1
/*
学习汇编必备知识
求-3的补码

方法:
->求原码(第一位为1,其余位按二进制形式表示)
->求反码(除第一位之外,其余位数全部取反)
->求补码(在反码的基础之上再加1)
->求反码(整体位数取反)

1|0000000 00000000 00000000 00000011   -> -3的原码
1|1111111 11111111 11111111 11111100   -> -3的反码
1|1111111 11111111 11111111 11111101   -> -3的补码   //也就是说这就是-3的二进制码
0|0000000 00000000 00000000 00000010   -> ~3  = 2

注意:
第一位为1表示负数
除第一位之外其余位数表示二进制数字
*/
		System.out.println(~x);
	}
} 



int x = -3;   // 应该以补码的形式存在
取反码的方法:找一下最精确的解释方法

左移与右移的方法

举例十七

public class OperateDemo17
{
	public static void main(String args[]){
		int x = 3;  // 3的二进制数据:00000000 00000000 00000000 0000011
		System.out.println(x + "左移2位之后的内容:" + (x << 2)); //x=12
	}
} 



x<<2

// 3的二进制数据: 00000000 00000000 00000000 00000011
// 3的左移2位据:   00000000 00000000 00000000 00001100
 
举例十八

public class OperateDemo18
{
	public static void main(String args[]){
		int x = 3;  // 3的二进制数据:00000000 00000000 00000000 0000011
		int y = -3;  // 3的二进制数据:10000000 00000000 00000000 0000011
		/*
		求-1的二进制码(哇塞牛比)
		10000000 00000000 00000000 00000001 原码 = 第一位为1其余位按二进制处理
		11111111 11111111 11111111 11111110 反码 = 除第一位全部取反
		11111111 11111111 11111111 11111111 补码 = 反码+1
		*/

		System.out.println(x + "右移2位之后的内容:" + (x >> 2)); 
		System.out.println(y + "右移2位之后的内容:" + (y >> 2)); 
	}
} 



x>>2

学习汇编必备资料

无符号右移
举例十九

public class OperateDemo19
{
	public static void main(String args[]){
		int x = 3;  // 3的二进制数据:00000000 00000000 00000000 0000011
		int y = -3;  // 3的二进制数据:10000000 00000000 00000000 0000011

		System.out.println(x + "右移2位之后的内容:" + (x >>> 2)); 
		System.out.println(y + "右移2位之后的内容:" + (y >>> 2)); 
	}
} 



x>>>2

位操作实际上在基本的开发中使用较少,对于一些底层的加密,MD5等才会用到。

SimpleExpress

 

简单运算符及表达式的使用


在java中提供了以下几种运算符,
+=
-=
x=
/=
%=

b++
与++b
b--
与--b

public class SimpleExpressDemo01
{
	public static void main(String args[]){
		int a = 5, b= 1;
		System.out.println("改变之前的数是:a = " + a + ", b = " + b);
		a += b; //等价于a = a + b
		System.out.println("改变之后的数是:a = " + a + ", b = " + b);	
	}
}


 

 以上的运算实际上操作起来更加简便,但是这样的操作在现在开发中已经不提倡。

TypeChangeDemo

 

表达式类型的转换

 

当Java发现程序中表达试中有类型不相符的情况时,会依据下列的规则来处理类型的转换。
1.占用字节较少的类型转换成占用字节较多的类型。
2。字符类型会转换成int类型。
3.int 类型会转换成float类型。
4.表达式中若某个操作数的类型为double,则另一个操作数字也会转换成double类型。
5.布尔类型不能转换成其它类型。

举例:

public class TypeChangeDemo{
	public static void main(String args[]){
		char ch = 'a';
		short a = -2;
		int b = 3;
		float f = 5.3f;
		double d = 6.28;
		System.out.println("(ch / a) - (d / f) - (a + b) = ");
		System.out.println((ch / a) - (d / f) - (a + b) );	
	}
}

 

只要数据操作中出现了double类型,则肯定是最大的类型,最终的操作结果以此类型为准备。
一般来讲开发中一定要写简单代码。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

e421083458

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值