Java——类型转换+运算符

文章目录

  • 1 类型转换
    • 1.1 自动类型转换
    • 1.2 强制类型转换
  • 2 运算符
    • 2.1 算术运算符
    • 2.2 "+"作为连接符
    • 2.3 自增自减运算符
    • 2.4 赋值运算符
    • 2.5 关系运算符
    • 2.6 逻辑运算符
    • 2.7 三元运算符
    • 2.8 优先级
  • 3 API介绍

1 类型转换

1.1 自动类型转换

  • 类型范围小的变量,可以直接赋值给类型范围大的变量
  • 表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算
  • 表达式的最终结果类型由表达式中的最高类型决定
  • 表达式中,byte、short、char 是直接转换成int类型参与运算的

Java——类型转换+运算符_第1张图片

//表达式的自动类型转换
byte a = 10;
int b = 20;
double c = 1.0;
double d = a+b+c;
System.out.println(d);//31.0

double v = a + b + 2.9//232.9;
System.out.println(v);

byte i = 10;
byte j = 20;
int k = i + j;//30
System.out.println(k);

1.2 强制类型转换

  • 强制类型转换可能会造成数据(丢失)溢出
  • 浮点型强转成整型,直接丢掉小数部分,保留整数部分返回
//强制转换
int a = 20;
byte b = (byte)a;
System.out.println(b);//20

int i =1500;
byte j =(byte)i;
System.out.println(j);//-36

double s = 99.8;
int t = (int) s;
System.out.println(t);//99

2 运算符

2.1 算术运算符

符号 作用
+
-
*
/ 除 (两个整数相除结果仍是整数)
% 取余
//基本算术运算符
int a=10;
int b=3;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b); //3.3333 --> 3
System.out.println(a * 1.0/ b); //3.3333
System.out.println(3 * 1.0/ 2); //1.5
System.out.println(3 / 2 *1.0); //1.0

//拆分三位数
int d = 589;
int g = d % 10;
System.out.println(g); //9
int s = d / 10 % 10;
System.out.println(s); //8
int b = d /100;
System.out.println(b); //5

2.2 "+"作为连接符

能算则算,不能算就在一起

int a = 5;
System.out.println("abc" + 'a');         //abca
System.out.println("abc" + a);           //abc5
System.out.println(5 + a);               //10
System.out.println("abc" + 5 + 'a');     //abc5a
System.out.println(15 + "abc" + 15);     //15abc15
System.out.println(a + 'a');             //5+97=102
System.out.println(a + "" + 'a');        //5a
System.out.println(a + 'a' + "hello");   //102hello
System.out.println("hello" + a + 'a');   //hello5a
System.out.println("hello" + (a + 'a')); //hello102

2.3 自增自减运算符

符号 作用
++ 自增,变量自身的值加1
-- 自减,变量自身的值减1
  • ++-- 既可以放在变量的后面,也可以放在变量的前面
  • ++-- 只能操作变量,不能操作字面量
int a = 10;
int b = 10;
a++;
b--;
System.out.println(a); //11
System.out.println(b); //9

//表达式中非单独运算
//放在变量的前面,先对变量进行+1/-1,再拿变量的值进行运算
//放在变量的后面,先拿变量的值进行运算,再对变量的值进行+1/-1
int i = 10;
int j = ++i;
int k = i++;
System.out.println(i); //12
System.out.println(j); //11
System.out.println(k); //11

//拓展案例
int k = 3;
int p = 5;
int r = k++ + ++k - --p + p-- - k-- + ++p + 2;
//  r    3  +  5  -  4  +  4  -  5  +  4  + 2
//  k  3  4  5  4
//  p  5  4  3  4
System.out.println(k); //4
System.out.println(p); //4
System.out.println(r); //9

2.4 赋值运算符

符号 作用
= 右赋值给左
+= a += b >> a=(a的数据类型)(a+b)
-= a -= b >> a=(a的数据类型)(a-b)
*= a * = b >> a=(a的数据类型)(a*b)
/= a /= b >> a=(a的数据类型)(a/b)
%= a %= b >> a=(a的数据类型)(a%b)
  • 扩展的运算符隐含了强制类型转换

2.5 关系运算符

  • 对数据进行条件判断的符号,最终会返回一个比较的布尔结果(true,false)
符号 说明
== 是否相等,成立为true,不成立为false
!= 是否不相等,成立为true,不成立为false
> 大于,成立为true,不成立为false
>= 大于等于,成立为true,不成立为false
< 小于,成立为true,不成立为false
<= 小于等于,成立为true,不成立为false

2.6 逻辑运算符

  • 可以把多个条件的布尔结果放在一起运算,最终返回一个布尔结果
符号 说明
& 逻辑与 必须都是true,结果才是true;只要有一个是false,结果一定是false
| 逻辑或 只要有一个为true,结果就是true
! 逻辑非 你真我假,你假我真 ; !true=false,!false=true
^ 逻辑异或 如果两个条件都是false或者都是true则结果是false.两个条件不同结果是true.

2.7 三元运算符

  • 格式: 条件表达式 ? 值1 : 值2 ;
  • 执行流程: 首先计算关系表达式的值,如果值为true,返回值1;如果为false,返回值2
//从两个整数中找到最大值
int a= 10;
int b = 200;
int max = a>b ? a:b;
System.out.println(max);
//拓展
int i = 10;
int j = 30;
int k = 50;
//方法1:俩俩比较
int temp = i > j ? i : j;
int max = k > temp ? k : temp;
//方法2:  ()可以去掉
int max = i > j ? (i>k ? i:k):(j>k ? j:k);
System.out.println(max);

2.8 优先级

优先级 运算符 简介 结合性
1 [ ] . () 方法调用,属性获取 从左向右
2 ! ~ ++ -- 一元运算符 从右向左
3 * / % 乘、除、取模(余数) 从左向右
4 + - 加减法 从左向右
5 << >> >>> 左位移、右位移、无符号右移 从左向右
6 < <= > >= instanceof 小于、小于等于、大于、大于等于,对象类型判断是否属于同类型 从左向右
7 == != 2个值是否相等,2个值是否不等于下面有详细的解释 从左向右
8 & 按位与 从左向右
9 ^ 按位异或 从左向右
10 | 按位或 从左向右
11 && 短路与 从左向右
12 || 短路或 从左向右
13 ?: 条件运算符 从右向左
14 = += -= *= /= %= &= 混合赋值运算符 从右向左

3 API介绍

API(Application Programming Interface),应用程序编程接口,可直接调用

键盘录入的开发步骤:

  • 导包:import Java.util.Scanner;
  • 抄写代码得到扫描器对象:Scanner sc = new Scanner(System.in)
  • 抄写代码等待接收用户输入的数据:sc.nextInt()、sc.next()

你可能感兴趣的:(Java学习,java)