使用方法如下:
注意事项:小数参与运算时,结果可能不准确,牵扯到计算机的数据存储
System.out.println("1 + 2"); //结果为3
System.out.println("8 - 6"); //结果为2
System.out.println("5 * 7"); //结果为35
/的运算结果为商值
System.out.println("10 / 2"); //结果为5
System.out.println("10 / 3"); //结果为3,只有整数参与运算时,结果为整数
System.out.println("10.0 / 3"); //结果为3.3333333,小数参与运算时,结果为小数
%的运算结果为余数
System.out.println("10 % 3"); //结果为1
System.out.println("10 % 5"); //结果为0
算数运算符实战:数值拆分
package ssss; //创建的包名为ssss
import java.util.Scanner; //导入键盘录入需要的包
public class test{
public static void main(String[] args){
//键盘录入
Scanner sc = new Scanner(System.in); //固定格式
System.out.println("请输入一个三位数:");
int num = sc.nextInt(); //将键盘的录入值赋值给num
//求各个位上的值
int g = num % 10; //个位
int s = num /10 % 10; //十位
int b = num /100 % 10; //百位
System.out.println(g);
System.out.println(s);
System.out.println(b);
}
}
2、数据运算时的类型转换
1、隐式转换(自动类型提升):把一个取值范围小的数值,转换成取值范围大的数据。
取值范围从小到大:byte -> short -> int -> long -> float -> double
例如以下转换不会报错: int a = 19; double b = a; //b的值为19.0000000
转换规则:
取值范围小的和取值范围大的进行运算时,小的会提升为大的,然后再进行运算。
byte、short、char三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算。
byte a1 = 10; byte a2 = 20; char c1 = 15; int i1 = a1 + a2; //结果为int int i2 = a2 + c1; //结果为int int b1 = 9; long b2 = 8; double b3 = 7; double d = b1 + b2 + b3; //结果为double long x = a1 + c1 + b2; //结果为long
2、强制转换
如果把一个取值范围大的数值,赋值给取值范围小的变量。是不允许直接复制的。如果一定要这么做就需要加入强制转换。
格式:目标数据类型 变量名 = (目标数据类型)被强制转换的数据 ;
byte a = 10; byte b = 20; int c = 30; 转换如下: byte d = (byte)c; byte e = (byte)(a+b);3、字符串的相加
字符串只有加操作,没有乘、除、减操作。
注意: 1、只要加操作中出现字符串,则这个加号的作用就是字符串连接符,即将加号两边的字符串拼接 起来,而不再是算数运算符。 2、进行加号操作时,从左往右依次进行。
代码实现如下:
System.out.println(3.7 + "abcd"); //3.7abcd
System.out.println("abcd" + true); //abcdtrue
System.out.println('中' + "abcd" + true); //中abcdtrue
int age = 16;
System.out.println("我的年龄是" + age +"岁"); //我的年龄是18岁
System.out.println("我的年龄是" + "age" +"岁"); //我的年龄是age岁
System.out.println(1 + 2 + "abcd" + 2 + 1); //3abcd21
4、字符相加
当(字符+字符)或(字符+数字)时,会把字符通过ASCLL码表查询到的对应的数字再进行计算
代码实现如下:
System.out.println(1 + 'a'); //98, a的ASCLL码表对应数值为97
System.out.println('a'+'b'); //195, 97+98
5、自增自减运算符
++:作用是加,变量值加1
--:作用是减,变量值减1
++和--既可以放在变量的前面,也可以放在变量的后面。
1、单独使用。
即单行使用,不参与运算。此时++和--无论是放在变量前还是变量后,单独写一行结果是一样的。
代码实现如下:
int a =10; a++; //a的值加1 System.out.println(a); //11 ++a; //a的值加1 System.out.println(a); //12 a--; //a的值减1 System.out.println(a); //11 --a; //a的值减1 System.out.println(a); //10
2、参与计算。
例如: //先用后加 int a = 10; int b =a++; //b=10,a=11 //先加后用 int c = 10; int d = ++c; //d=11,c=11
实战如下:
int x = 10; int y = x++; //先用后加,y=10,x=11 int z = ++x; //先加后用,z=12,x=12 System.out.println(x); //12 System.out.println(y); //10 System.out.println(z); //126、赋值运算符
+=、-=、*=、/=、%=底层都隐藏了一个强制类型转换。
代码实战如下:
int a=10; a+=60; // a=a+60 System.out.println(a); //707、关系运算符
注意事项:
1、关系运算符的结果都是boolean类型,要么是true,要么是false。
2、千万不要把“==”误写成“=”。
代码实战如下:
int a=10; int b=20; int c=20; boolean rel = c <= b; boolean ress = c > b; System.out.println(a==b); //false System.out.println(c==b); //true System.out.println(rel); //true System.out.println(ress); //false8、逻辑运算符
代码举例如下:
1、& 并且 System.out.println(true & true); //true System.out.println(true & false); //false System.out.println(false & false); //false 2、| 或 System.out.println(true | true); //true System.out.println(true | false); //true System.out.println(false | false); //false 3、 ^ 异或 System.out.println(true ^ true); //false System.out.println(true ^ false); //true System.out.println(false ^ false); //false 4、! 逻辑非 取反 System.out.println(!true); //false System.out.println(!false); //true9、短路逻辑运算符
最常用的逻辑运算符为“&&、|| 和 !”
注意事项如下:
&和|,无论左边是true还是false,右边的都要执行。 &&和||,如果左边能确定整个表达式的结果,右边就不用执行了。 &&:左边为false时,右边无论是真是假,整个表达式结果一定为false。 ||:左边为true时,右边无论是真是假,整个表达式结果一定为true。
代码实战如下:
package sss;
import java.util.Scanner;
public class test{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个整数");
int num1 = sc.nextInt();
System.out.println("请输入第二个整数");
int num2 = sc.nextInt();
boolean result = num1==6 || num2==6 || (num1+num2)%6==0;
System.out.println(result);
}
}
10、三元运算符
格式: 关系表达式?表达式1:表达式2;
计算规则,首先计算关系表达式的值;如果值为true,表达式1的值就是运算结果;如果值为false,表达式2的值就是运算结果。
比如:求两个数的最大值 方案1: int max = a > b ? a : b; System.out.println(max); 方案2: System.out.println(a > b ? a : b); 判断a是否大于b System.out.println(a > b ? "是" : "否");11、运算符的优先级
为了提高代码的阅读性,先计算谁就给谁加上小括号。



