day 03
目录
基本类型间的转换
为什么类型间转换
程序中当我们需要一个int型数据 但程序中只有一个double型数据
所以要将double数据类型转化为int类型.
两种转换方式
自动类型转换/隐式类型转换:从小到大
强制类型转换:从大到小
int a= 5;
long b =a; //自动类型转换
int c = b; //编译错误,大到小必须强制类型转换
语法(要转换的成的数据类型)变量
int c = (int)b; //强制类型转换
特殊情况
long d = 5; //自动类型转换
double e = 5; //自动类型转换
System.out.println(e);//5.0,默认保留一位小数
long f =100000000000000L;
int(g) =(int)f;
System.out.println(g); //强制转换可能会发生溢出
double h = 25.987;
int i =(int) h;
System.out.println(i); //25 ,强转有可能丢失精度
int a = 5;
long b = a;//自动类型转换
int c = (int) b;//强制类型转换
long d = 5; //自动类型转换
double e = 5; //自动类型转换
System.out.println(e);//5.0 默认保留一位小数
long f = 10000000000L;
int g = (int) f;
System.out.println(g); //1410065408,强转有可能发生溢出
double h = 25.97;
int i = (int) h;
System.out.println(i); //25 强转有可能丢失精度
规则
- 整数直接量可以直接赋值给byte、shout、char但不能超出范围
- byte、short、char类型数据参与运算,时一律自动转换位int再运算
byte b1 = 5;//5 为整数直接量
byte b2 =6;
//byte b3 = b1+b2; //byte shot char 在进行运算时会先自动转换转换为int类型进行计算
byte b3 = (byte)(b1+b2);//所以要强制转换
System.out.println(2+2); //4
System.out.println(2+'2'); //52 ,2加上‘2’的码50
System.out.println('2'+'2'); //100, ‘2’的码50 加上‘2’的码
int m = 'a';
System.out.println(m); //97,查看字符对应的码
//char n = (char)97; //a,查看对应的字符 ,数字转字符可以不用强制转换
char n = 97;
System.out.println(n);
运算符
算数运算符
算数运算符时进行算数运算的符号
+、-、*、/、%、++、--
%:取模/取余,商之后剩下的数即为余数,余数为0即为整除。
++/-- :自增1/自减1,即在本身基础之上增1/减1
相当于 a =a+1 或a=a-1
可以写在变量前,也可以写在变量后
++a 或 a++ --a 或a--
不同场景写前和写后情况不同
单独使用时,写前写后一样都是自增/自减1
例:int a =5 ,b=5;
a++; //相当于a=a+1;
++b;//相当于b=b+1;
被使用时,写前写后不一样
例:int a= 5,b =5;
int c = a--; //先将a的值赋值给c,然后a自减1变为4
int d =--b; //b先自减1 为4 ,然后将b的值4赋值给d
//1)%练习
System.out.println(5%2); //1,商2余1
System.out.println(8%2); //0,商4余0----整除
System.out.println(2%8); //2,商0余2
System.out.println(0%7); //0,商0余0
//2)++,-- 单独使用
int a=5,b=5;
a++; //相当于a=a+1
++b; //相当于b=b+1
System.out.println(a); //6
System.out.println(b); //6
a=5;
b=5;
a--; //相当于a=a-1
--b; //相当于b=b-1
System.out.println(a); //4
System.out.println(b); //4
//3)被使用
int a=5,b=5;
int c = a--; //将a--的值5赋值给c,同时a自减1变为4
int d = --b; //将--b的值4赋值给d,同时b自减1变为4
System.out.println(a); //4
System.out.println(b); //4
System.out.println(c); //5
System.out.println(d); //4
a=5;
b=5;
int c = a++; //将a++的值5赋值给c,同时a自增1变为6
int d = ++b; //将++b的值6赋值给d,同时b自增1变为6
System.out.println(a); //6
System.out.println(b); //6
System.out.println(c); //5
System.out.println(d); //6
关系运算符
> (大于) <(小于) >=(大于等于) <=(小于等于) ==(等于) !=(不等于)
结果为Boolean型,关系为真则为true,关系为假则为false;
逻辑运算符
&&逻辑与(并且)两边为真则为真,见false则false
||逻辑或(或者)有真则为真,见true则true
!逻辑非(取反)非真则假,非假则真
短路与/或,当第一条件为false/true时,会发生短路(后面的代码不执行了)
=
//逻辑非
int a = 10,b=15,c=10;
boolean b1 = !(a<b);
System.out.println(b2); //!true=false
System.out.println(!(a>b)); //!false=true
//逻辑与
boolean b2 = b>=a && b<c;
System.out.println(b2); //true&&false=false
System.out.println(b<=c && b>a); //false&&true=false
System.out.println(a==b && c>b); //false&&false=false
System.out.println(b!=c && a<b); //true&&true=true
//逻辑非
System.out.println(b>=a || b<c); //true||false=true
System.out.println(b<=c || b>a); //false||true=true
System.out.println(b!=c || a<b); //true||true=true
System.out.println(a==b || b<c); //false||false=false
//短路
/*
boolean b3 = a>b && c++>2;
System.out.println(b3); //false
System.out.println(c); //10,发生短路了
*/
boolean b4 = a<b || c++>2;
System.out.println(b4); //true
System.out.println(c); //10,发生短路了
赋值运算符
赋值运算符是用于给变量赋值的运算符
=,(+=,-=,/=,%= )--->在本身基础之上做操作
例:int a= 2;
a+=10; //12 相当于a=a+10
字符串链接运算符
字符串连接运算符是进行字符串连接的运算符
“+”
1.若两边为数字,则做加法运算
2.若两边出现 了字符串,则作字符串连接
一串字符,放在双引号中,长度没有限制(可以为空)
3.任何类型的数据与字符串连接,结果都会是字符串类型
int age = 18;
System.out.println("age="); //age=
System.out.println(age); //18
System.out.println("age="+age); //age= 18
System.out.println("你今年多大了. 我今年刚满"+age+"岁~"); //age=
System.out.println(10+20+""+30); //3030 -----String
System.out.println(""+10+20+30); //102030 ---String
System.out.println(10+20+30+""); //60 -----String
条件运算符
条件运算符,也叫三目运算符
boolean表达式?表达式1:表达式2
执行过程:
int num = 5;
int flag = num>0?1:-1
System.out.println(flag);//1
预告
分支结构
Scanner接受用户输入数据
switch……case
循环
内容有问题欢迎指正