运算符与方法的应用
运算符: 进行特定操作的符号,叫运算符。 例:+
表达式:运用运算符连接起来的式子叫表达式。 例:20 + 5,又例如:a + b
1. 算数运算符
算数运算符包括: | |
+ | 加法运算,字符串连接运算 |
— | 减法运算 |
* | 乘法运算 |
/ | 除法运算 |
% | 取模运算,两个数字相除取余数 |
++、—— | 自增自减运算 |
Java中,整数使用以上运算符,无论怎么计算,都不会得到小数。
package com.scxh.day01; public class Demo01DataType { public static void main(String[]args){ int i = 1234; System.out.println(i/1000*1000); // 1000 } }
++运算,变量自己增长1,反之,--运算,变量自己减少1,用法与++一致。
注意事项:
1.一旦运算当中有不同类型的数据,那么结果将会是数据类型范围大的那种。
1.1.除法运算符
例:
package com.scxh.day01; import java.util.SortedMap; public class Demo01Operator { public static void main(String[] args) { // 两个常量之间可以进行数学运算 System.out.println(20 + 30); // 两个变量之间也可以进行数学运算 int a = 20; int b = 30; System.out.println(a - b); // -10 // 变量和常量之间可以混合使用 System.out.println(a * 10); //200 int x = 10; int y = 3; int result1 = x / y; System.out.println(result1); // 3 int result2 = x%y; System.out.println(result2); // 余数,模,1 //注:只有对于整数的除法来说,取模运算符才有余数的意义。 double result3 = x + 2.5; System.out.println(result3); // 12.5 } }
1.2. 加法运算符
加号常见的三种方法:
1.对于数值来说,那就是加法。
2.对于字符char类型来说,在计算之前,char会被提升成为int,然后再计算。
char类型字符,和int类型数字,之间的对照关系表:ASCII码表,Unicode
3.对于字符串String(首字母大写,并不是关键字)来说,加号代表字符串连接操作。
任何数据类型和字符串进行连接的时候,结果都会变成字符串
//字符串类型的变量基本使用 //数据类型 变量名 = 数据值; String str1 = "Hello"; System.out.println(str1); //Hello System.out.println("Hello" + "World"); //HelloWorld String str2 = "Java"; // String + int --> String System.out.println(str2 + 20); // Java20 //优先级问题 // String + int + int // String + int // String System.out.println(str2 + 20 + 30); //Java2030 // 改变优先级 System.out.println(str2 + 20 + 30); //Java2030 System.out.println(str2 + (20 + 30)); //Java50 // 乘除优先于加减,小括号优先于一切
2.赋值运算符
赋值运算符:= 、+=
a = 10 将10赋值给变量a
注意:拓展的+=赋值运算符底层隐含了强制类型转换,所以以后遇到A = A+20可直接写成A += 20
例:
//把10赋值给int类型的变量A int A = 10; System.out.println("A:" + A); // += 把左边和右边的数据做加法操作,结果赋值给左边 A += 20; System.out.println("A:" + A);
3.自增自减运算
自增运算符:++
自减运算符:--
含义:让一个变量涨或者降一个数字1
使用格式:写在变量名之前,或者写在变量名之后。 例:++num,num++
使用方式:
1.单独使用:不和其他任何操作混合,自己独立成为一个步骤。
2.混合使用:不和其他操作混合,例如与赋值混合,或者与打印操作混合,等。
使用区别:
1.单独使用的时候,num++和++num没有任何区别,也就是:++num;和num++;是一样的。
4.关系运算符
注意:关系运算符输出的值都是boolean类型,要么是true,要么是false,千万不要把 "==" 误写成 "=" 。
例:
package com.scxh.day01; /* 关系运算符 */ public class Demo02Operator { public static void main(String[] args) { //定义变量 int i = 10; int j = 20; int k = 10; // == System.out.println("判断i和j是否相等:" + (i == j)); System.out.println("判断i和k是否相等:" + (i == k)); System.out.println("----------------------------------------"); // 如果不小心把==写成了=,那么就会把j的值赋值给i,并且输出i的值 System.out.println("i = j 的值:" + (i = j)); System.out.println("----------------------------------------"); // != System.out.println("判断i和j是否不相等:" + (i != j)); System.out.println("判断i和j是否不相等:" + (i != k)); System.out.println("----------------------------------------"); // > System.out.println("判断i是否大于j:" + (i > j)); System.out.println("判断i是否大于k:" + (i > k)); System.out.println("----------------------------------------"); // >= System.out.println("判断i是否大于等于j:" + (i >= j)); System.out.println("判断i是否大于等于k:" + (i >= k)); System.out.println("----------------------------------------"); // < System.out.println("判断i是否小于j:" + (i < j)); System.out.println("判断i是否小于k:" + (i < k)); System.out.println("----------------------------------------"); // <= System.out.println("判断i是否小于等于j:" + (i <= j)); System.out.println("判断i是否小于等于k:" + (i <= k)); } }
5. 逻辑运算符
在数学中,一个数据x,大于3,小于6,我们可以这样来表示:3<x<6。
- 拆解为:x > 3 和 x < 6
- 合并后:x > 3 && x < 6
&&其实就是一个逻辑运算符
我们可与这样说,逻辑运算符,就是用来连接关系表达式的运算符
当然,逻辑运算符也可以直接连接布尔类型的常量或变量。
例:
package com.scxh.day01; /* 逻辑运算符 */ public class Demo03Operator { public static void main(String[] args) { //定义变量 int i = 10; int j = 20; int k = 30; //& (逻辑与) 有false则false System.out.println((i > j) & (i > k)); //false & false System.out.println((i < j) & (i > k)); //true & false System.out.println((i > j) & (i < k)); //false & true System.out.println((i < j) & (i < k)); //true & true System.out.println("---------------"); //| (逻辑或) 有true则true System.out.println((i > j) | (i > k)); //false | false System.out.println((i < j) | (i > k)); //true | false System.out.println((i > j) | (i < k)); //false | true System.out.println((i < j) | (i < k)); //true | true System.out.println("---------------"); //^ (逻辑异或) 相同为false,不同为true System.out.println((i > j) ^ (i > k)); //false ^ false System.out.println((i < j) ^ (i > k)); //true ^ false System.out.println((i > j) ^ (i < k)); //false ^ true System.out.println((i < j) ^ (i < k)); //true ^ true 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 } }
5.2 短路逻辑运算符
注意事项:
- 逻辑与&,无论左边真假,右边都要执行。
短路与&&,如果左边为真,右边执行;如果左边为假,则右边不执行。
- 逻辑或|,无论左边真假,右边都要执行。
短路或||,如果左边为假,右边执行;如果左边为真,则右边不执行。
最常用的逻辑运算符: &&,||,!
6.三元运算符
6.1三元运算符
- 格式:关系表达式?表达式1:表达式2;
- 范例:a > b ? a : b;
计算规则:
首先计算关系表达式的值
如果值为true,表达式1的值就是运算结果
如果值为false,表达式2的值就是运算结果
package com.scxh.day01; public class Demo04Operator { public static void main(String[] args) { //定义两个变量 int a = 10; int b = 20; //获取两个数据中的较大值 int max = a > b ? a: b; //输出结果 System.out.println("max:" + max); //20 } }