目录
1、数据类型转换
(1)自动类型转换:存储范围较小的数据类型量和存储范围较大的数据类型的量运算结果的数据类型为较大的数据类型,byte→short →int→long→float→double
满足自动类型转换的条件:
两种类型要兼容,数值类型(整型和浮点型)互相兼容
目标类型大于源类型,例如:double 型大于 int 型
(2)强制类型转换:
数据类型 变量名 = (数据类型)(表达式);
eg:int num = (int)(32.5+8);
注:强制类型转换可能导致精度丢失
2、运算符
(1)赋值运算符
变量名 = 表达式;
*两个变量num1、num2互换值:
int num1;
int num2;
int temp;
temp = num1;
num1 = num2;
num2 = temp;
(2)算术运算符
算术运算符:
基本算术运算符:+ - * / %(取模运算符/取余运算符) ++(自增运算符) --(自减运算符)
++/--在变量前或者变量后,此变量都会自增1或者自减1;
++/--在变量前,先进行自增或者自减运算,然后再参与其它运算;
++/--在变量后,先去参与运算,然后再进行自增或者自减运算。
复合算术运算符:+= -= *= /= %=:运算速度较快
(2)关系运算符
==、!=、>、<、>=、<=
=为赋值运算符,==为等于运算符
关系表达式的结果为布尔值
>、<、>=、<= 运算符的优先级别高于==、!=
>、<、>=、<=运算符只支持数值类型的数据比较
(3)逻辑运算符
逻辑运算符:&、&&(短路与)、|、||(短路或)、!
* 参与逻辑运算的表达式结果要是布尔值
* 逻辑运算符本身的结果也为布尔值,要么为true,要么为false
运算规则:
- & &&运算规律:只有当&和&&左右两边同时为true,&和&的结果才为true
- | ||运算规律:只要|和||左右两边有一个为true,|和||的运算结果为true
- !运算符法的运算规律:true进行!运算得到false;false进行!运算得到true
*&和&&的异同点:
相同点:运算规律是一样的,只有当&和&&左右两边同时为true的时候,&和&&的运算结果才为true
不同点:
&&有短路功能:当&&左边表达式的结果为false,不再判断&&右边表达式的结果,直接输出&&d运算结果
&没有短路功能:不管&左边表达的结果为true还是false,都要先去判断&右边表达式的结果,然后再输出&运算结果
* |和||的异同点:
相同点:运算规矩是一样的,只要|和||左右两边有一个为true,|和||的运算结果为true
异同点:
||有短路功能:当||左边表达式的结果为true,不再判断||右边表达式的结果,直接输出||运算结果
|没有短路功能:不管|左边表达式的结果为true还是false,都要先去判断|右边表达式的结果,然后再输出|运算结果
3、课堂练习
键盘输入四位数字的会员卡号
使用“/”和“%”运算符分解获得会员卡各个位上的数字
将各个位上数字求和
import java.util.Scanner;
public class Demo02 {
public static void main(String[] args) {
/*
* 键盘输入四位数字的会员卡号
* 使用“/”和“%”运算符分解获得会员卡各个位上的数字
* 将各个位上数字求和
*/
//创建Scanner类对象
Scanner input = new Scanner(System.in);
System.out.println("请输入4位会员卡号:");
int cardId=input.nextInt();
System.out.println("你的会员卡号是:"+cardId);
//使用“/”和“%”运算符分解获得会员卡各个位上的数字
//9527 9527%10=7
int geWei=cardId%10;
int shiWei=cardId/10%10;
int baiWei=cardId/100%10;
int qianWei=cardId/1000;
System.out.println("千位:"+qianWei+",百位:"+baiWei+",十位:"+shiWei+",个位:"+geWei);
//将各个位上数字求和
int sum =geWei+shiWei+baiWei+qianWei;
System.out.println("各个位上的数字之和:"+sum);
}
}