Java-3.运算符

常量

Java中值不能被修改的变量叫做常量
final float PI = 3.14f;
常量的名称全部大写(非必须的)

运算符:

1.赋值运算符 = :将=右边的值赋给左边

2.算术运算符

1)基本算术运算符:+,-,*,/,%,++,–

+,-,*,/,%:都是需要两个操作数来参与运算
++,--:只需要一个操作数参与运算
++放在操作数左边,表示先执行+1运算,再使用操作数
++放在操作数右边,表示先使用操作数,再执行+1运算。
--同理。

2)复合算术运算符:需要两个操作数来参与运算

+=,-=,*=,/=,%=,==,!=

数据类型转换:只适用于数值类型的变量

1.自动类型转换

等号右边的数据可以自动转为等号左边的数据,完成赋值:
如果等号右边的数据范围小于等号左边,则可以完成自动类型转换。

例如,short赋值给int。

2.强制类型转换

如果等号右边的数据范围大于等号左边,则需要使用强制类型转换。

语法:(要转换的类型)目标值
会造成精度损失,例如int赋值给short。

1
2
3
4
5
6
7
public class Test {
public static void main (String[] args) {
float num = 9.3f
int n = (int)num
System.out.println(n)
}
}

Demo:

让用户通过键盘输入4位数字的卡号,
求出4位卡号的每一个位数上的数字,打印输出,
并且求这4个数字的总和。

包:package
为了区分同名的Java类而存在的

使用工具类Scanner 类,让用户可以通过键盘输入数字,并且让Java程序接收到这个数字。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import java.util.Scanner;

public class MyTest {
public static void main(String[] args) {
System.out.println("请您输入4位卡号");
//创建Scanner工具类对象
Scanner scanner = new Scanner(System.in);
int cardId = scanner.nextInt();
int firstNum = cardId/1000;
int secondNum = cardId%1000/100;
int thirdNum = cardId%100/10;
int forthNum = cardId%10;
System.out.println("用户输入的数字是:"+cardId);
System.out.println("千位数是:"+firstNum);
System.out.println("百位数是:"+secondNum);
System.out.println("十位数是:"+thirdNum);
System.out.println("个位数是:"+forthNum);
System.out.println("各个位的数字总和是:"+(firstNum+secondNum+thirdNum+forthNum));
/**
* 如果数字之和大于20,则该用户中奖,否则不中奖
* 我需要得到一个结果,用户中奖或不中奖,结果是由数字之和是否大于20来决定
*/
int sum = firstNum+secondNum+thirdNum+forthNum;
String result = sum>20?"恭喜您中奖啦!!!":"对不起,您没有中奖";
System.out.println(result);
}
}

运算符:

1.算术运算符
2.赋值运算符 =
3.关系运算符
4.逻辑运算符
5.条件运算符
6.位运算符

关系运算符:

判断一个表达式是否成立,结果只有两种:成立/不成立,boolean:true/false
==:判断==两边的操作数是否相等。
!=:判断不相等
只有== !=可以作用于任意的数据类型,其他的关系运算符只能作用于数值类型(整型,浮点型 byte,short,int,long,float,double)

<

=
<=

逻辑运算符:

多个表达式之间的逻辑判断
&:与,&左右两边的表达式必须同时成立,结果为true,否则为false
|:或,|左右两边的表达式只要有一个成立,结果为true,|左右两边的表达式都不成立,结果为false
!:非,!右边的表达式成立,结果为false,!右边的表达式不成立,结果为true
&&:短路与
同&
&&左边的结果为false,则不会执行&&右边的表达式
||:短路或
同|
||左边的结果为true,则不会执行||右边的表达式

条件运算符:三元表达式,三目表达式,是用来给变量赋值的

语法:
数据类型 变量名 = 条件?数据1:数据2;
规则:条件成立,表达式1的结果赋给变量,
条件不成立,表达式2的结果赋给变量。

位运算符:对表达式以二进制为单位进行运算

任何进制的数通过除以K反向取余将其转化为k进制数。

十进制转为二进制:

用数字除以2,求出余数,记做第一位,对商继续除以2,求出余数,记做第二位...
直到商为零。

10:1010
9:1001
17:10001

二进制转为十进制:

从右边起,该位的数值乘以该位的权重(2的该位顺序-1次方),依次累加。

1010:10
1001:9
10001:17

位运算

&按位与:将两个操作数转为二进制,每一位进行运算,两个数都为1,则该位记为1。
|按位或:将两个操作数转为二进制,每一位进行运算,两个数中有一个为1,则该位记为1。
^按位异或:将两个操作数转为二进制,每一位进行运算,两个数不一样,则该位记为1。
<<左移
a<<b 即a*(2^b)

右移
a>>b 即a/(2^b)

如果参与运算的操作数是表达式,则&,|是与和或
如果参与运算的操作数是数值,则&,|是按位与或按位或

评论