为什么要进行类型转换?
存在不同类型的变量赋值给其他类型的变量
自动类型转换是什么样的?
类型范围小的变量,可以直接赋值给类型范围大的变量。
实例:
public class 类型转换 {
public static void main(String[] args) {
byte a = 9;
int b = a;
System.out.println(a);
System.out.println(b);
int age= 25;
double ge=age;
System.out.println(ge);
char v='a';
int code = v;
System.out.println(code);
}
}
表达式的自动类型转换是什么样的?
- 小范围的类型会自动转换成大范围的类型运算。
表达式的最终结果类型是由谁决定的?
- 最终类型由表达式中的最高类型决定。
表达式的有哪些类型转换是需要注意的?
- byte short char是直接转换成int类型参与运算的。
实例:
public class 表达式的自由类型转换 {
public static void main(String[] args) {
byte a= 10;
int b= 9;
double c=7;
double rs= a + b + c;
System.out.println(rs);
double rs2= a + b - 2.5;
System.out.println(rs2);
byte i=70;
byte k=90;
int y= k + i;
System.out.println(y);
}
}
什么是强制类型转换?
- 可以强行将类型范围大的变量、数据赋值给类型范围小的变量。
数据类型变量=(数据类型)变量、数据
强制类型转换有哪些需要注意的?
- 可能出现数据丢失。
- 小数强制转换成整数是直接截断小数保留整数。
实例:
public class 强制类型转换 {
public static void main(String[] args) {
int a=20;
byte b= (byte) a;
System.out.println(a);
System.out.println(b);
int i=140;
byte j= (byte) i;
System.out.println(j); //出问题了
/*强制类型转换可能造成数据(丢失)溢出;
浮点型强转成整型,直接丢掉小数部分,保留整数部分返回。*/
double score=9.6;
int q= (int) score;
System.out.println(q); //去小数
}
}
算数运算符有哪些?
+、-、*、l、%
需要注意什么,为什么?
- 如果两个整数做除法,其结果一定是整数,因为最高类型是整数。
实例:
public class 运算符 {
public static void main(String[] args) {
int a= 10;
int b=20;
System.out.println(a+b); //30
System.out.println(a-b); //-10
System.out.println(a*b); //200
System.out.println(a/b); //0
System.out.println(a*1.0/b); //0.5
System.out.println(a*1.0/2); // 5.0
System.out.println(3/2*1.0); //1.0
System.out.println(a%b); //10 取余
}
}
案例 —— 数值拆分
需求:一个三位数,将其拆分为个位、十位、百位后,打印在控制台
请输入整数:123
整数123的个位为:3
整数123的十位为:2
整数123的百位为:1
public class 数值拆分 {
public static void main(String[] args) {
int data= 579;
int ge= data %10; //个位
System.out.println(ge);
int shi= data/10%10; //十位
System.out.println(shi);
int bai= data/100; //百位
System.out.println(bai);
}
}
+除了做基本数学运算,还有哪些功能?
- 与字符串做+运算时会被当成连接符,其结果还是字符串。
自增、自减运算符是什么,有什么作用?
++、--。对当前变量值+1、-1
自增、自减运算符在变量前后有区别吗?
- 如果单独使用放前后是没有区别的。
- 非单独使用:在变量前,先进行变量自增/自减,再使用变量。
实例:
public class 自增自减 {
public static void main(String[] args) {
int a=10;
++a;
System.out.println(a); //11
int b=20;
--b;
System.out.println(b); // 19
int i=10;
int j=++i;
System.out.println(j); //11
System.out.println(i); //11
int y=20;
int w=y++;
System.out.println(y); //21
System.out.println(w); // 20
}
}
自增、自减拓展案例(有些面试题会出现)
System.out.println("---------------"); //11
int c=10;
int q=2;
int rs3=c++ + ++c - --q +1 + c--;
System.out.println(c); //11
System.out.println(q); //1
System.out.println(rs3); //34
赋值运算符有哪些?
=、+=、-=、*=、l=、%=
作用是什么?
- 基本作用是赋值。
- +=还可以实现数据的累加,把别人的数据加给自己。
实例:
public class 赋值运算符 {
public static void main(String[] args) {
//=、+=、-=、*=、l=、%=
int a=100;
int b=200;
a +=b; //a=(int)(a+b)
System.out.println(a);
byte q=30;
byte w=10; //byte值为-128 -> 127
q +=w; //q=(byte)(q+w)
System.out.println(q);
}
}
实例:
public class 关系运算符 {
public static void main(String[] args) {
int a=100;
int b=200;
boolean rs=a ==b; //false
System.out.println(rs);
System.out.println(a ==b); //false
System.out.println(a !=b); //true
System.out.println(a >b); //false
System.out.println(a <b); //true
System.out.println(a >=b); //false
System.out.println(a <=b); //true
}
}
实例:
public class 逻辑运算符 {
public static void main(String[] args) {
double size=10;
double storage=6;
//有一个FALSE,都FALSE
System.out.println(size >= 7 & storage >=8); //false
//逻辑或,只有有一个TRUE就TRUE
System.out.println(size >= 7 | storage >=8); //true
//逻辑非,
System.out.println(!true); //false
System.out.println(!false); //true
//逻辑异或,相同则false ,不同则true
System.out.println(false ^ true); //true
System.out.println(true ^ false); //true
System.out.println(true ^ true); //false
System.out.println(false ^ false); //false
System.out.println("----------");
int a=10;
int b=20;
//短路与&&:一个为false、结果是false。前一个为false,后一个条件不执行了
System.out.println(a >100 && ++b>10);
System.out.println(b);
int r=10;
int t=20;
//短路或||:一个为true、结果是true。前一个为true,后一个条件不执行了
System.out.println(r >2 && ++t>10);
System.out.println(t);
}
}
实例:
public class 三元运算符 {
public static void main(String[] args) {
double score=18;
String rs= score >=60 ? "通过" : "挂科";
System.out.println(rs);
int a=10000;
int b=200;
int max=a>b ? a:b;
System.out.println(max);
}
}
实例:
//案例:三个整数的最大值
int i=10;
int j=30;
int k=50;
int temp=i>j ?i:j;
int rsMax=temp > k ? temp:k;
System.out.println(rsMax);
API是什么?
- Application Programming Interface,应用程序编程接口。
- Java写好的程序,咱们可以直接调用。
键盘录入的开发步骤
- 导包: import java.util.Scanner;
- 抄写代码得到扫描器对象: Scanner sc = new Scanner(System.in)
- 抄写代码等待接收用户输入的数据: sc.nextlnt() .sc.next()
实例:(键盘录入)
import java.util.Scanner;
public class 键盘录入 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("你的年龄:");
int age= sc.nextInt();
System.out.println("你的年龄是:" +age);
System.out.println("你的名称:");
String name= sc.next();
System.out.println("你的名称:是:" +name);
}
}
Comments | NOTHING