Java之运算符、常用类及流程控制语句的初步了解

运算符

分类

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

其中优先级顺序从上到下,可以记忆口诀:单目乘除位关系,逻辑三目后赋值

操作数: 运算符左右两边的数
表达式: 运算符连接操作数整体叫做表达式
语句: 分号代表语句的结束

		单目|一元运算符: 操作数为1个  +号  ++ --
		双目|二元运算符: 操作数为2个  + - * /
		三目|三元运算符: 条件运算符

算术运算符

+号:

  1. 正号(可省略)
  2. 加法运算
  3. 字符串的连接
    1. 如果+左右两边有字符串的出现"",+就是作为字符串的连接符使用,把两边的内容拼接成为一整个字符串使用

-号:

  1. 符号
  2. 减法运算

此外,还有* / %

% 模以,取模,求余数

++ –

  1. ++,–操作自己
    无论++在前还是在后,自己加一
    无论–在前还是在后,自己减一
  2. ++,–操作别人
    ++在前,先自己加一在参与运算
    ++在后,先参与运算在自己加一
    –同理

赋值运算符

  1. 基础赋值运算符
    1. = 是java中唯一一个自右向左运算的符号优先级最低
  2. 扩展赋值运算符
    1. += a+=b; ==> a=a+b;-=同理
    2. a*=b; ==> a=a*b; /=、%=同理

推荐使用扩展赋值运算符
优点:
执行效率高
缺点:
不直观

关系运算符

符号:> < >= <=

可以参与运算的类型:byte short int long float double char

符号:== !=

可以参与运算的类型:基本数据类型、引用数据类型

关系运算符最终得到的结果:boolean类型的结果

逻辑运算符

& 与:一个false就是false,两个都为true,才为true

| 或:一个为true就是true,两个都为false,才是false

! 非:取反 !true->false !false->true

^ 异或:相同为false,不同为true

短路: 如果第一个操作数就能够决定最终的结果,第二个操作数位置不执行。

​ && 短路与、|| 短路或

​ 推荐使用短路

​ 所有的逻辑运算符的操作数都为值为boolean类型的表达式。

条件运算符|三目运算符|三元运算符

​ 条件表达式?值1:值2;

​ 条件表达式:值为boolean类型的表达式

​ 执行流程:

​ 1.条件表达式 ,最终会得到一个boolean结果

​ 2.如果结果为true,整个条件表达式最终的结果为值1,否则执行值2;

​ 条件运算符最终肯定会得到一个结果

位运算(仅做了解)

​ 先把操作数转为二进制,根据运算符的逻辑进行操作,最终得到的结果再转为十进制

​ & : 同一位置的两个数,如果一个为0就是0,两个都为1才是1
​ | : 同一位置的两个数,如果一个为1就是1,两个都为0才是0
​ ^ : 同一位置的两个数,相同为0,不同为1
​ 位移运算符

​ 左移 第一个操作数转为2进制,第二个操作数是移动位数 ,向左移动指定的位数,空位补零,例如:

​ 8<<2 1000左移2位 1000 00 -> 转为十进制 32

​ 右移 第一个操作数转为2进制,第二个操作数是移动位数 ,向右移动指定的位数,想象数据的右边有一条分水线,右侧的内容砍掉,只保留左侧的数据,转为十进制,例如:

​ 8>>2 1000 右移2位 10->转为十进制 2

右移相当于/2 8>>3 8/2^3
左移相当于*2 8<<3 8*2^3

位运算符比直接使用* /效率高

​ 运算符的优先级:
​ (),.优先级是最高的

常用类

Scanner

注意:不要让你的类名与java中已有的类名一致

引用数据类型:
引用数据类型 变量名|引用 = new 引用数据类型();

​ 使用功能:
​ 变量名|引用.功能名字();

Scanner : 接收键盘输入的内容

​ 1.导包 import 导入 + 权限命名(报名+类名);

​ 位置: 类的上面导包

​ 2.创建这个类型的引用

​ Scanner sc=new Scanner(System.in);

​ 3.使用功能:

​ 引用.功能名字();

​ sc.nextInt(); 接收用户键盘输入的整数类型的数据
​ sc.nextLong(); 接收用户键盘输入的长整数类型的数据
​ sc.nextByte(); 接收用户键盘输入的字节类型的数据
​ sc.nextShort(); 接收用户键盘输入的短整数类型的数据
​ sc.nextFloat(); 接收用户键盘输入的单精度类型的数据
​ sc.nextDouble(); 接收用户键盘输入的双精度类型的数据

​ sc.next() 从有效字符开始接收,空格不算,接收用户输入的字符串内容,知道遇到空格,tab,就接收不到数据,但是功能没有停止,遇到enter功能结束
​ sc.nextLine() 接收一整行的数据

​ 从第一个字符开始接收,知道遇到enter结束

​ 系列next功能不能接收enter,遇到enter结束,nextLine可以接收enter

​ 4.关闭

​ 引用.close()
​ 关闭了之后就不能再次使用,就算是重新打开也不好用

Random随机数

产生随机数
1.导包 import java.util.Random;
2.创建类型的引用 Random ran=new Random();
3.使用功能:
引用.nextInt(); 产生一个int范围内的随机整数
引用.nextInt(整数n); 产生一个 [0,n) 随机整数
[0,max) ran.nextInt(max);
[0,max] ran.nextInt(max+1);
[min,max] ran.nextInt(max-min+1)+min;
[min,max) ran.nextInt(max-min)+min;
引用.nextDouble() [0.0,1.0)之间的随机小数

流程控制

​ 顺序结构: 从上到下从左到右
​ 选择结构: 满足条件才能执行
​ 循环结构: 重复执行某些代码

选择结构

if_else

if结构:

单选择|单分支:
if(条件表达式){
		满足条件才执行的语句体;
}
条件表达式:值为boolean类型的表达式
执行流程:
	1.执行条件表达式,如果结果为true,就执行语句体
	2.如果结果为false,就跳过if结构	
	
	
双选择|双分支:				
if(条件表达式){
				语句体1;
			}else{
				语句体2;
			}
执行流程:
		1.执行条件表达式,如果结果为true,就执行语句体1
		2.如果结果为false,就执行语句体2
		


多选择|多分支:
			if(条件表达式1){
				语句体1;
			}else if(条件表达式2){
				语句体2;
			}
			.....
			else{
				以上条件都不满足,就执行else中的内容  语句体n
			}
执行流程:
		1.计算条件表达式1,如果结果为true,执行语句体1,如果结果为false
		2.执行条件表达式2,如果结果为true,执行语句体2,如果结果为false
		....
		果以上条件都不满足,执行else中的语句体n

注意:如果语句体只有一句,前后的{}可以省略, 如果一个if语句中如果存在接盘侠else,肯定有结果。

if与条件运算符之间的区别:条件运算符肯定有结果,if不一定
能使用条件运算符的就推荐使用条件运算符,结构简单,效率较高

switch

定值判断 switch
区间判断 if
能用switch肯定能用if,能用if的不一定能用switch

switch(表达式){
		case 值1 :
			语句体1;
			break;
		case 值2:
			语句体2;
			break;
		case 值3:
			语句体3;
			break;
			......
		
		default:
			以上值都不满足,执行default中的内容
			break;
	}

​ 表达式: 只能为byte,short,int,char,字符串(1.7),枚举(1.5)
一般使用变量

​ case: case后的定值与表达式的结果进行判断是否相等,对应执行不同的语句体
​ break: 结束switch语句,如果没有break,会发生case穿透,从现在执行完的语句体开始,如果没有break,下面的case无论是否相等,都会执行对应的语句体,直到遇到下一个break或者switch语句的结束而结束
​ default: 接盘侠,相当于else,以上值都不满足,执行default中的内容

​ 可写可不写,default位置可以改变

执行流程:
1.计算表达式
2.那值与case后的值比较是否相等,如果相等就执行对应的语句体,如果不相等就向下继续比较

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值