1.Java中简单的赋值运算符

最基本的赋值运算符是“=”,表示将右边表达式的值赋值给左边的变量。
扩展的赋值运算符
+=
-=
*=
/=
%=
都表示先将左边与右边做相应的运算,再赋值给左边。
注意:扩展的赋值运算符隐含了强制类型转换。

public class FuZhiYunSuanFu{
	public static void main (String[]args){
		//把10赋值给int类型的变量;
		int i = 10;
		System.out.println("i:"+i);//10
		//+= 把左边和右边的数据做加法操作,结果赋值给左边
		i += 20;
		//i = i+20;
		System.out.println("i:"+i);//30
		//注意:扩展的赋值运算符底层隐含了强制类型转换
		short s = 10;
		s += 20;//s 为short类型 20为int类型
		//s = (short)(s+20);
		System.out.println("s:"+s);//30
	}
}

2.关系运算符

关系运算符有6种关系,分别为小于、小于等于、大于、等于、大于等于、不等于。关系运算符的运算结果都是boolean类型,要么是true,要么是false。注意不要把“== ” 误写为“=”,“==”是关系运算(等于),“=”是赋值运算。

java 比较运算 代码实现 规则引擎 java中比较运算符有哪些_java 比较运算 代码实现 规则引擎


进行简单的代码检验:

public class GuanXiYunSuan{
	public static void main(String[]args){
		//定义变量
		int i = 10;
		int j = 20;
		int k = 10;
		//==
		System.out.println(i == j);
		System.out.println(i == k);

		System.out.println("-----------");
		//!=
		System.out.println(i != j);
		System.out.println(i != j);
		System.out.println("-----------");
		//>
		System.out.println(i>j);
		System.out.println(i>k);
		System.out.println("---------");
		//>=
		System.out.println(i >= j);
		System.out.println(i >= k);
		System.out.println("----------");
		//不小心吧==写成了=
		//吧j的值赋值给了i,然后输出i
		System.out.println(i=j);
		
	}
}

3.逻辑运算符

3.1
逻辑运算符把各个运算的表达式连接起来,组成一个逻辑表达式,以判断程序中的表达式是否成立。
逻辑运算的结果肯定是boolean类型,要么是true要么是false。
& 逻辑与 并且的关系,只有表达式全部为true时,结果才为true
| 逻辑或 或者的关系,只有表达式全部为false是,结果才为false
^ 逻辑异或 a^b, a与b的结果不同,异或结果为true,相同为false
! 逻辑非 取反,!a与a的结果正好相反

代码演示

/*
逻辑运算符
*/
public class LuoJiYunSuanFu{
	public static void main(String[] args){
		//定义变量
		int i = 10;
		int j = 20;
		int  k =30;
		//& 有false则fakse
		System.out.println((i>j)&(i>k));// false&false
		System.out.println((i<j)&(i>k));//ture&false
		System.out.println((i>j)&(i<k));//false&ture
		System.out.println((i<j)&(i<k));//ture&ture
		System.out.println("----------");
		//| 有ture则ture
		System.out.println((i>j)|(i>k));// false|false
		System.out.println((i<j)|(i>k));//ture|false
		System.out.println((i>j)|(i<k));//false|ture
		System.out.println((i<j)|(i<k));//ture|ture
		System.out.println("-----------");
		//^相同为false,不同为true
		System.out.println((i>j)^(i>k));// false^false
		System.out.println((i<j)^(i>k));//ture^false
		System.out.println((i>j)^(i<k));//false^ture
		System.out.println((i<j)^(i<k));//ture^ture
		System.out.println("-----------");
		//!
		System.out.println((i>j));// false
		System.out.println(!(i>j));//!false
		System.out.println(!!(i>j));//!!false
		System.out.println(!!!(i>j));//!!!false
		System.out.println("-----------");
	}
}

3.2短路逻辑运算符
在逻辑与运算中,如果一个表达式结果为false,那么整个运算结果其实已经可以确定了,肯定为false,这时,其实没必要再判断其他参与运算的表达式了。同样在逻辑或运算中,如果一个表达式为true,那么结果也可以确定为true了。
&& 逻辑与 运算结果与&相同,但具有短路效果
一旦发现左边的表达式结果为false,右边的表达将不再参与运算
|| 逻辑或 运算结果与|相同,但具有短路效果
一旦发现左边的表达式结果为true,右边的表达将不再参与运算

在我们的代码书写中,逻辑与和或的运算,实际使用的就是短路的逻辑运算符。

代码展示:

/*
短逻辑运算符
*/
public class DuanLuoJiYunSuanFu{
	public static void main(String[] args){
		//定义变量
		int i = 10;
		int j = 20;
		int  k =30;
		int h = 40;
		//& 有false则fakse
		System.out.println((i>j)&&(i>k));// false&false
		System.out.println((i<j)&&(i>k));//ture&false
		System.out.println((i>j)&&(i<k));//false&ture
		System.out.println((i<j)&&(i<k));//ture&ture
		System.out.println("----------");
		//| 有ture则ture
		System.out.println((i>j)||(i>k));// false|false
		System.out.println((i<j)||(i>k));//ture|false
		System.out.println((i>j)||(i<k));//false|ture
		System.out.println((i<j)||(i<k));//ture|ture
		System.out.println("-----------");
		//&&和&
		System.out.println((i++>50)&&(j++>50));
		//System.out.println((j++>50)&(i++>50));
		System.out.println("i:"+i);
		System.out.println("j"+j);
		//||和|
		System.out.println((k++<100)||(h++>100));
		System.out.println("k:"+k);
		System.out.println("h:"+h);
		}
}

4.三元运算符

三元运算符语法格式:
关系表达式 ? 表达式1 : 表达式2;

说明:问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用。

代码一:两个数比大小

public class SanYuanYunSuanFu{
	public static void main(String[]args){
		//定义两个变量
		int a = 5;
		int b = 3;
		//获取两个数中的较小值
		int min = a < b ? a : b;
		//输出结果
		System.out.println("min:"+min);
	}
}

代码二 比较两位同学成绩:

/*
两位同学比较成绩
已知两位同学的语文成绩分别为80、100,请用程序实现判断两位同学成绩是否相等。
定义两个变量记录两位同学成绩
使用三元运算符判断成绩是否相同,相同为true,不同为false
输出结果
Ji
*/public class ChengJi{
	public static void main(String[]args){
		int chengJi1 = 80;
		int chengJi2 = 100;
		boolean b = chengJi1 == chengJi2 ? true:false;
		System.out.println("b:"+b);
	}
}

代码三:求三人当中最低的身高

/*
求三个人身高最低的
*/
public class SanGehesang{
	public static void main(String[]args){
		int height1 = 150;
		int height2 = 210;
		int height3 = 165;
		//定义一个临时变量x
		int x = height1<height2?height1:height2;
		//
		int y = x < height3? x:height3;
		//输出结果
		System.out.println("最低身高为:"+y);
		}
}

5.算术运算符

5.1Java程序中,整数运算,结果只能得到整数,想得到小数,需要浮点数参与运算。
整数的除法运算得到的是商
整数的取余运算得到的是余数
算术运算符int类型除法遇到小数,可使用输出语句System.out.println(a*1.0/b);来实现结果出现小数;在java运算符中:整数相除只能得到整数。得到小数必须有浮点数的参与操作。

/*
	算术运算符
*/
public class SuanSuYunSuan01 {
	public static void main(String[] args) {
		//定义两个变量
		int a = 6;
		int b = 4;
		
		System.out.println(a + b);
		System.out.println(a - b);
		System.out.println(a * b);
		System.out.println(a / b);
		System.out.println(a % b);
		//除法得到的是商,取余得到是余数
		
		//整数相除只能得到整数,要想得到小数,必须有浮点数的参与
		System.out.println(6*0.1/ 4);
	}
}

5.2字符的“+”操作
用char类型的字符参与到算术运算的时候,会取字符在计算机底层对应的数值来进行计算。有几个连续的字符需要简单记忆一下:'A’对应的是65 从A到Z是连续的
‘a’对应的是97,从a到z是连续的。
‘0’对应的是48,从0到9是;连续的。
char类型的数据参与算术运算,会自动提升为int类型,使用的是字符在计算机底层中对应的十进制整数值。
记住三个字符对应的数值:
‘A’---- 65
‘a’---- 97
‘0’---- 48
不同的基本数据类型参与运算时,整个算术表达式的类型会自动进行提升,提升为参与运算的最高等级。
提升规则:
byte类型,short类型和char类型将被提升到int类型
整个表达式的类型自动提升到表达式中最高等级操作数相同的类型
等级顺序:byte,short,char > int > long > float > double

/*
	字符的"+"操作
*/
public class OperatorDemo02 {
	public static void main(String[] args) {
		//定义两个变量
		int i = 10;
		char c = 'A'; //'A'的值是65
		c = 'a'; //'a'的值是97
		c = '0'; //'0'的值是48
		System.out.println(i + c);
		
		//char ch = i + c;
		//char类型会被自动提升为int类型
		int j = i + c;
		System.out.println(j);
		
		//int k = 10 + 13.14;
		double d = 10 + 13.14;
	}
}

5.3字符串的“+”操作
当“+”操作中出现字符串时,这个”+”是字符串连接符,而不是算术运算。在”+”操作中,如果出现了字符串,就是连接运算符,否则就是算术运算。当连续进行“+”操作时,从左到右逐个执行。在以后的输出语句中,我们可以使用字符串连接符使输出结果更加清晰。

/*
字符串的 + 操作
*/
public class ZiFuChuanCaoZuo{
	public static void main(String[]args){
		System.out.println("LOVE"+"JAVA");//LOVEJAVA
		System.out.println("JAVA"+666);//JAVA666
		System.out.println(666+"JAVA");//666JAVA
		System.out.println("老铁"+6+66);//老铁666
		System.out.println(6+66+"老铁");//72老铁
		//定义两个变量 保存a b 的值
		String a = "杰克马";
		String b ="亿表人财";
		//用字符串拼接成一句话
		System.out.println(a+b);//杰克马亿表人财
		String xingMing = "XX辉";
		int age = 18;
		System.out.println("我叫"+xingMing+",今年:"+age+"岁");
	}
}

5.4自增自减运算符

自增(或自减自减)运算符作用是在运算结束前(前置自增自减运算符)或后(后置自增自减运算符)将变量的值加(或减)一。单独使用,前置和后置没有区别,结果一样。
参与运算:
前置,运算使用的是自增或自减后的值。(先增后用 ++a)
后置,运算使用的是自增或自减前的值。(先用后增 a++)
常见用法:单独使用

减减的代码演示:

/*
 -- 运算符
结论:
++ -- 既可以放在变量前,也可以放在变量后;
		如果单独使用,在前在后效果一样;
		如果复合使用,在前和在后,对于要进行自增或自减的的这个变量来说没有影响,受影响的是其它变量;
		当++或--在变量前时,--a;自己先减,让在和别人运算;
		当++或-- 在变量后时,a--先和别人运算在自己减

注意:代码从上到下 逐行执行!!
*/
public class JianJian{
	public static void main (String[] args){
		int a = 5;
		int b = --a-1;//--a  a会先减1 然后再 4-1,所以 a=4,b=3
		System.out.println("a:"+a);//4
		System.out.println("b:"+b);//3
		
		int c = a-- -1;//由于a--,此时a会先使用原来的值(4)和-1操作。所以 c=3;然后a在自己减1(--),所以a最终也会变为3
		System.out.println("c:"+c);// 3
		System.out.println("a:"+a);//3
		//输出的时候,如果用++或--也算是符合运算
		int d = 5;
		int e = 5;
		System.out.println("----------");
		System.out.println("d:"+ d--);//5
		System.out.println("e:"+ --e);//4
		System.out.println("----------");
		System.out.println("d:"+d);//4
		System.out.println("e:"+e);//4
		System.out.println();
	}
}