Day03 进制 运算符 流程控制语句 Scanner类 Random类 equals方法

一 数值型的表现形式

1.整数

(1)二进制

由0,1组成    以0b/0B开头就是二进制    0b1001

(2)八进制

由0~7组成   以0开头是八进制  01001

(3)十进制

默认进制

(4)十六进制

由0~9和a~f组成(大小写都可以) 以0x/0X开头就是表示十六进制

从其他进制如何转为十进制: 从后往前算,每一个位置的数值* 进制数^0(从0开始,往后的每一个位置+1),最终得到的和就是十进制数值

从十进制转为其他进制:用这个数一直除以要转为的进制数,取余数,从下往上看

2.浮点数

0.13432  ->0可以省略   .123

科学计数法: e->10   1.23e3  -->1.23*10^3      1.23e-2  -->1.23/10^2

二 运算符

操作数:运算符左右两边的数就是操作数   a+b

表达式:运算符连接左右的操作数整体叫做表达式

语句:遇到;就是语句的结束;

 

一元运算符:操作数只有一个的运算符叫做一元运算符   ++ --  !

二元运算符:操作数只有二个的运算符  + - * /

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

1.算数运算符

(1) +

1)正号 可以省略

2)加法运算

3)字符串连接符

+左右两边是否存在字符串,如果字符串就作为字符串的连接符使用,会拼成一整个字符串

(2) -

1)负号 不可省略

2)减法运算

(3) *

(4) %

(5) /

取余数|取模|模以 如果第一个操作数<第二个操作数的时候,最后的结果为第一个操作数

(6) ++--

操作自己:++ -- 只影响你本身的结果,不影响其他人(不参与其他运算)

++ 放在操作数的前面后者后面都是自身+1

-- 放在操作数的前面后者后面都是自身-1

 

操作别人

++,-- 如果放在操作数的后面,是先参与运算,再自身+1,-1      b--;

++,-- 如果放在操作数的前面,先自身+1,-1,再参与运算          --b;

 

2.赋值运算符

(1)基本赋值运算符

=

双目运算符自右向左运算的符号优先级最低

(2) 扩展赋值运算符(基本赋值运算符+算数运算符)

+= -= *= /= %=  a+=1;==>a=a+1

优点:提高执行效率自动做强制类型转换

缺点: 不直观

*推荐使用扩展赋值运算符,会成倍提高效率

3.关系运算符|比较运算符

(1) >  <  >=  <=

只能用来比较  byte short int long folat double char

(2) ==  !=

既可以用来比较基本数据类型,也可以用来比较引用数据类型

关系运算符最终得到的结果为boolean类型 true/false

4.逻辑运算符

逻辑运算符左右两边的操作数必须是值为boolean的表达式

(1) & 与

如果左右两边有一个false,结果就为false

(2) | 或

两边只要有一个为true,结果就是true,两个都为false才是false

(3) ! 非

取反  !true  !false

(4) ^ 异或

两个操作数相同为false不同为true

(5) && 短路与

如果左右两边有一个false,结果就为false,当左边为false时右边不需要判断结果为false,可以提高效率

(6) || 短路或

只要有一个为true就是true,两个都为false才是false,当左边为true时右边不需要判断结果为true,可以提高效率.

推荐使用短路与,短路或

5.条件运算符

比较表达式?值1:值2;

1.比较表达式  值为boolean类型的表达式

2.如果结果为true,取值1

3.如果结果为false,去取值2

6.位运算符

先把数据转为二进制参与运算,然后得到结果再转为十进制

(1) &

同一位置的两个数如果有一个为0就是0.两个都为1才是1

(2) |

同一位置的两个数如果有一个为1就是1.两个都为0才是0

(3) ^

同一位置的两个数如果相等为0.不等是1

以上三个符号既可以为逻辑运算符(操作数为boolean值)也可以为位运算符(操作数为整数)

 

(4) >>右移   

左边操作数转为二进制,向右移动右边操作数个位数,超出分水岭的位置数舍弃,保留的转为十进制

正数补0负数补1

(5)<<左移

左边操作数转为二进制,向左移动右边操作数个位数,空余补0,在转为十进制

规律:

右移  左边的数/2的右边的数次方   8>>3   8/2^3   9>>2

左移  左边的数*2的右边的数次方   8<<3   8*2^3

十进制的负数转二进制: 对这个数的整数取二进制,然后去反+1

负数的二进制如何转十进制: 去反+1,得到的十进制数字前面填负号

三 Scanner类

1.基本数据类型使用:

int a=5;

2.引用数据类型使用:

(1)创建一个类型的引用

数据类型 变量名 = new 数据类型();   ---该类型的引用|变量

Scanner  sc = new Scanner(); ---Scanner类型的变量

(2)使用功能

引用.功能名字();

3.Scanner : 接受键盘输入

(1)导包

指明Scanner的位置  java--util--Scanner

import java.util.Scanner;

位置:类的上面声明

(2)创建Scanner类型的变量

Scanner scr=new Scanner(System.in);

(3)引用.功能名字();

引用.nextInt() 接收用户输入的整数

引用.nextByte() 接收用户输入的整数

引用.nextShort() 接收用户输入的整数

引用.nextLong() 接收用户输入的整数

引用.nextFloat() 接收用户输入的小数

引用.nextDouble() 接收用户输入的小数

引用.next() 接收用户输入的字符串

有效字符开始接受,遇到空格,tab,enter就不接收了,但是遇到enter停止功能

引用.nextLine() 接受用户输入的一整行数据

从用户输入的内容开始,知道接受enter结束

(4)引用.close();

凡属于IO流的内容最好用完关闭释放资源

要在真正使用完毕以后再关闭资源,一旦关闭无法重新使用,就算是重新创建引用不行

四 Random类

1.Random : 产生随机数

(1)导包

java.util.Random

(2)创建类型的变量

Random ran=new Raindom();

(3)变量

变量.功能名字();

nextInt();  产生int范围内的随机数

nextInt(整数n) [0,n)随机整数

 

2.公式:

[0,max] 之间的随机整数           变量.nextInt(max+1);

[min,max)                                 变量.nextInt(max-min)+min;

[min,max]                                 变量.nextInt(max-min+1)+min;

nextDouble()                             产生[0.0,1.0)随机小数

 

五 流程控制语句

顺序结构:从上到下,从左到右

1.if..else

(1)单选择|单分支

if(条件表达式){

语句体;

}

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

2.如果为false,直接跳过选择结构,不执行语句体

3.如果为true,执行{}中的语句体

(2)双选择|双分支

if(条件表达式){

语句体1;

}else{

语句体2;

}

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

2.如果为true,直执行语句体1

3.如果为false,执行语句体2

(3)多选择|多分支

if(条件表达式1){

语句体1;

}else if(条件表达式2){

语句体2;

}else if(条件表达式3){

语句体3;

}.....

else{

语句体n;

}

1.执行条件表达式1,如果为true,执行语句体1,如果为false

2.执行条件表达式2,如果为true,执行语句体2,如果为false

3....

4.如果以上条件表达式都不满足,执行语句体n

if结构与条件运算符的区别:

1.条件运算符必须有结果,if可以没有结果

2.条件运算符是运算符,结构更简单,效率更高

3.如果对一个条件进行多次判断时候,推荐使用if

2.switch语句 :定值判断

switch(表达式){

case 值1:

语句体1;

break;

case 值2:

语句体2;

break;

.....

default:

语句体n;

break;

}

(1)执行流程:

1,计算表达式

2.与case后的值比较,如果和值1相等,就执行语句体1,遇到break结束,如果不相等继续向下比较

3.与值2比较,就执行语句体2,遇到break结束,如果不相等继续向下比较

.....

4.如果以上条件都不满足,就执行default中的内容 (default可以省略)

(2)表达式:一般是一个变量

表达式的结果的数据类型,只能为byte,short,int,char,枚举(1.5后新增),字符串(1.7新增)

break:如果不写break,会发生case穿透,从当前满足条件的语句体开始,一直向下执行所有的语句体,不再判断是否满足条件,直到遇到下一个break;或者语句体的结束位置

default:位置可以改变,可以在任意位置,一般放在最后

switch和if之间如何选择:

switch:定值判断

if:区间判断

3.equals

如果比较字符串内容是否相等就是用equals,如果在自定义类里面,需要重写equals方法. 一些不需要自己重写equals方法的是继承了Object类,已经重写了里面的方法.

字符串1.equals(字符串2)  ==>如果两个字符串相等返回true,如果不相等返回false.

一般字符串放在左边,表达式放在右边,是为了避免因表达式的对象不存在,调用不了equals方法而造成的异常

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值