1.算数运算符
算数运算符,操作变量和常量,用于基本的计算. 分类: + - * / %(取余数) ++ -- 注意: 整数相除,结果为整数; 如果想得到小数,必须要小数参与运算. 除法运算, 取余两个运算的区别 3 7 3/7 = 0 .... 3 如果是除法运算得到的结果是0 3%7 =0 .....3 如果是取模得到的结果是余数3注意事项: 字符串和字符参与运算
1)字符参与运算 使用int数据类型接收 char 数据, 得到的结果是数值 int x = 'a'+ '0'; 使用char数据类型接受数值,得到的结果是根据这个数值对应的ASCII编码,输出的结果是一个编码 char y = 97; 2)字符串参与运算 所有基本数据类型与字符串用+连接,都会变成字符串. int a = 10; int b = 20; String s = "hello"; String result = a + s; //这个结果是一个字符串 10hello System.out.println(a + b + c + "world"); //30helloworld +号除了算数运算符,还有一个作用是字符串的连接符号. 3)++ 和 -- ++和--是一个算数运算符. 类似于 ; 变量++, 变量--; 举例 int x = 10; x++; 10++; ++在前; ++在后 如果单独使用的话,++在前和在后没有什么区别; int a = 10; a++; ++a; 案例1: 不一样的场景: 参与运算的时候不同 /* * ++ 和 -- */ public class Test1 { public static void main(String[] args) { /*int a = 10; int b = 20; int c = a++ + b; //如果++在后面 先拿着a原来的值去和b做加法运算 System.out.println(c); System.out.println(a); // a 此时已经是加过了1的 */ int a = 10; int b = 20; int c = ++a + b; //先a自己先+1 , 然后拿着加后的结果+b ; 把值赋给c System.out.println(c); // 31 System.out.println(a); //11 } } 案例2 int x = 10; int y = x++; //x = 11 int z = ++x; // z = 12 System.out.println(x); //12 System.out.println(y); //10 System.out.println(z); //12 案例3 int x = 4; int y = (x++)+(++x)+(x*10); // 4 + 6 + 6*10 System.out.println(y); //702.赋值运算符
赋值运算符有哪些: = += -= *= /= %= =赋值符号 , +=(和其他扩展赋值运算符用法一致): 入门: int x = 10; x += 20; System.out.println(x); 案例: /* int x = 10; x += 20; // x = x + 20; System.out.println(x); */ byte b = 30; b += 10; //b = (byte)(b + 10); 隐含了强制类型转换 System.out.println(b);3.关系运算符(比较运算符)
关系运算符得到的最终结果都是布尔类型,不是true就是false == != > >= < <= 目前判断变量和常量是否相等 大于 不等等操作. 入门案例: //算数运算符 int a = 2; //int b = 3; System.out.println(a==1); System.out.println(a>=2); System.out.println(a != 3); System.out.println(a > 4);4.逻辑运算符
逻辑运算符的作用: 连接关系运算符,因为java中 这种写法 100 > a > 10 是错误的. java中使用方式: a> 10 & a < 100 分类: 逻辑与 & : 逻辑与两边同时为true 结果为true , 如果有一遍结果为false,则结果为false 举例: false & true ---> false 逻辑或 | : 逻辑或两边只要有一个true结果为true, 如果两边同时为fasle,则结果为false 举例: System.out.println(1==3 | true); 逻辑异或 ^: 相同则为false ,不同则为true 逻辑非 !: 非false则为true , 非true则为false 短路与 && : 和逻辑与用法实际上结果一样,唯一的区别是 使用短路与,如果左边为false,右边不执行. 短路或 || : 和逻辑或用法上结果一样,区别是,使用短路或,左边如果是true,右边不执行.5.三元运算符(三目运算符)
格式: 关系表达式 ? 表达式1 : 表达式2; true或false true取表达式1 false取表达式2 举例: int a = 10; int b = 20; int c = (a > b) ? a : b; System.out.println(c);练习1:
/* 定义两个int类型的数据 int a = 10; int b = 20; 1.使用三元运算符判断这个数是否相同,如果相同返回 a,如果不同返回b 2.使用三元运算符判断a和b哪个值大,如果a大于b返回a,如果a小于b返回b; */ public class Test2 { public static void main(String[] args) { int a = 110; int b = 20; int e = 200; int c = (a == b) ? a : b; System.out.println(c); //求a和b中的最大值 int d = (a > b) ? a : b; System.out.println(d); } }练习2:
/** * * 需求:定义三个int类型的数据 int a = 10; int b = 20; int c = 30; 使用三元运算符获取这三个数中的最大值,并打印 分析: 1)a b c 三个int数, 先求a和b中最大的值,使用三元运算符,把得到的结果赋值给 int temp 2)拿temp 和 c 去比较,使用三元运算符,获取temp和c中较大的值,赋值给int max */ public class Test3 { public static void main(String[] args) { int a = 10; int b = 20; int c = 30; // 1)a b c 三个int数, 先求a和b中最大的值,使用三元运算符,把得到的结果赋值给 int temp int temp = (a > b) ? a : b; //求a和b中较大的值给temp //2)拿temp 和 c 去比较,使用三元运算符,获取temp和c中较大的值,赋值给int max int max = (temp > c) ? temp : c; //求temp 和c 中较大的值 System.out.println(max); } }