Java中常用的运算符

mac2024-01-31  40

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。注意不要把“== ” 误写为“=”,“==”是关系运算(等于),“=”是赋值运算。

进行简单的代码检验:

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(); } }

文章有不对之处,欢迎同学们指出修改,谢谢。

最新回复(0)