JavaSE Day2
1、算术运算符
什么是算术运算符,什么是表达式
运算符就是对常量和变量操作的符号;表达式的意思是用运算符吧常量或变量联系起来的式子
包括
一元运算符
二元运算符
算术赋值运算符
一元运算符
运算符 | 名称 | 说明 | 例子 |
---|---|---|---|
- | 取反符号 | 取反运算 | b=-a |
++ | 自加一 | 先加一在取值,或先取值在加一 | ++a或a++ |
– | 自减一 | 先减一在取值,或先取值在减一 | –a或a– |
举例说明
public class Test {
public static void main(String[] args) {
int a = 5;
System.out.println(-a); //1.对a取反
int b = a++;
System.out.println(b); //2.先赋值给b,a在自己加1
b = ++a;
System.out.println(b); //3.a先自己加一在赋值
}
}
输出结果如下图所示:
1.对a取反等于-5
2.先把a等于5赋值给b,所以b为5,然后a自加1变为6,所以输出b等于5
3.经过2步骤,a等于6,在线自加1,等于7,在赋值给b,所以b=7,输出-7
二元运算符
运算符 | 名称 | 说明 | 例子 |
---|---|---|---|
+ | 加 | 求a加b的和,还可以用于字符串拼接 | a+b |
- | 减 | 求a减b的差 | a-b |
* | 乘 | 求a乘b的乘积 | a*b |
/ | 除 | 求a除以b商 | a/b |
% | 取余 | 求a对b取余 | a%b |
优先级上*、/、%高于+、-
单引号的+是算术运算符用于相加,双引号的加是连接作用,不是相加作用
举例子
public class Test {
public static void main(String[] args) {
int a = 10;
int b = 5;
System.out.println(a+b); //加
System.out.println(a-b); //减
System.out.println(a*b); //乘
System.out.println(a/b); //除
System.out.println(a%b); //取余
}
}
结果如下:
思考:字符的”+“操作
int a = 1;
char b = 'a';
System.out.println(a+b)
当char与a进行运算的时候,会查找Ascll表中字符’a’对应的数值,然后和int进行+运算
ASCLL表是什么东西?
ASCII码是"美国信息交换标准代码"的简称.它包括0~9十个数字,大小写的英文字母及专用符号等95种可打印字符,还有33种控制字符.
案例:数值拆分
分别求三位数个、十、百分位
import java.util.Scanner; //导入java的内部类
public class Test {
public static void main(String[] args) {
Scanner in = new Scanner(System.in); //创建对象请从右边开始写new Scanner
//思考,为了程序的健壮性,首先用户输入的不是数字是字符怎么办(解决办法正则表达式),其次输入的不是三位数怎么办(解决办法if判断)
//1.从键盘获取三维数
int number = in.nextInt();
//2.将个位、十位、百位分别提取出来
int gewei = number%10;
int shiwei = number/10%10;
int baiwei = number/100;
System.out.println("个位是:"+gewei);
System.out.println("十位是:"+shiwei);
System.out.println("百位是:"+baiwei);
}
}