Skip to content

运算符

常量

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

运算符:

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

2.算术运算符

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

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

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

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

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

1.自动类型转换

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

例如,short赋值给int。

2.强制类型转换

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

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

java
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程序接收到这个数字。

java
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)

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