Java入门-03
- 测试java中的数值型的字面常量的值的表现形式
(1)整型:
二进制: 只能有0,1组成 前面 0b开头 ,大小写都可以。
八进制: 只能有0~7数字组成 以0开头。
十进制: 默认十进制
十六进制:0~9,a~f组成 以0x开头,大小写都可以。
其他进制转十进制: 从后往前,从最后一位开始*当前的进制数^0(次方从0开始,每次加一),最后求和
十进制转为其他进制:使用这个数一致除以进制数,看余数
(2)浮点型:
整数位为0的时候0可以省略
科学技术法 表示: e->10 1.23E2 1.23e-2
(3)转义字符从开始 +要转义的字符
'
"
b 退格
n 换行 ln
r 光标回到行首
t 制表符 一个汉字占2个空格,一个字母占1个空 一个制表符位8个空格
(4)运算符:
1)算数运算符
2)赋值运算符
3)比较运算符
4)逻辑运算符
5)条件运算符
6)位运算符(了解)
操作数: 运算符左右两边的就是操作数
表达式: 运算符连接操作数整体为表达式
语句: ;代表语句的结束
单目运算符|一元运算符 : 操作只有一个的运算符 + -号 ++ --
双目运算符|二元运算符 : + - * / ..
三目运算符|三元运算符 : 条件运算符
算数运算符:
+ - * / %
+
1)正号 (省略);
2)加法运算;
3)字符串的连接符: 当+左右两边如果一旦有字符串的出现,就作为字符串的连接符使用。
% 取余数|模以
第一个操作数小于第二个操作数,结果就为第一个操作数
++ --
++ 自增|自身+1
a++ --> a=a+1
++a --> a=a+1
-- 自减|自身-1
a-- --> a=a-1
--a --> a=a-1
操作自己
++放在操作数的前面还是后面,都是自身+1。
--放在操作数的前面还是后面,都是自身-1。
操作别人(1.赋值 2.打印 3.运算)
++--放在操作数的前面,先自身+1-1,再去参与运算
++--放在操作数的后面,先参与运算,再去自身+1-1
赋值运算符
基本赋值运算符
= java中唯一一个自右向左运算的符号。
扩展赋值运算符(算数运算符+基本赋值运算符)
+= -= *= /= %=
a+=b-> a=a+b
a*=b-> a=a*b;
推荐使用:
1.提高执行效率
2.自动做强制类型转换
缺点:不直观
比较运算符|关系运算符
> < >= <=
Byte、 short、 int 、long 、float、 double、 char、== 、!=
基本数据类型|引用数据类型
最终的结果肯定为boolean类型的结果
逻辑运算符
操作数要求都要值值为boolean类型的表达式
&与 :两个都为true才是true,一个为false就是false
|或 :一个为true就是true,两个都是false才是false
!非 :取反 !true-->false !false-->true
^ :相同为false,不同为true
推荐
短路:第一个操作数就已经能够决定最终的结果了,第二个操作数将不再执行
&&
||
条件运算符
条件表达式 ? 值1 : 值2;
1)执行条件表达式-->值为boolean类型的表达式。
2)如果为true,最终的结果取值1。
3)如果为false,最终的结果取值2。
位运算符
所有的操作数先转为二进制的形式参与运算,再把结果转为十进制的形式
& :同一位置的两个数,一个0就是0,两个都1才是1
| :同一位置的两个数,一个为1就是1,两个都为0才是0
^ :相同为0,不同为1
位移运算符
左移:<< 二进制的操作数,向左移动第二个操作数的位数,空余的位置补0,得到的结果转为十进制。
*2 -->第一个操作数*2的第二个操作数次方。
右移:>> 二进制的操作数,向右移动第二个操作数的位数,分水岭右侧的结果不要,只保留左侧,得到的结果转为十进制。
/2 -->第一个操作数/2的第二个操作数次方。
运算符的优先级:
单目算数位关系,逻辑三目后赋值(口诀)。
- 数据类型
基本数据类型
int a=5;
引用数据类型
1.创建某个类型的变量|引用
引用数据类型 变量名 = new 引用数据类型();
Scanner sc=new Scanner(); ---sc就是scanner类型的变量。
2.使用功能
变量.功能名字();
Scanner类:可以接收键盘输入的内容
1.导包:指明Scanner类的位置
import +包名+类名; import java.util.Scanner;
位置:类的上面
2.创建某个类型的变量|引用
Scanner sc=new Scanner();
3.引用.功能名字();
1)next() 接收字符串 结束功能:enter,不会接收enter。
从有效字符开始接收,遇到空格,tab不接受了,但是必须遇到enter结束功能。
2)nextLine() 只要没有换行,都能接收 遇到enter结束功能,接收enter
3)nextInt()
4)nextByte()
5)nextShort()
6)nextDouble()....
4.引用.close();
注意:一定在一个类中使用完毕以后再关闭,否则重新开启也无法使用。
Random:产生随机数
1.导包 import java.util.Random;
2.创建Random类型的变量|引用
3.引用.功能名字()
nextInt() 产生一个int范围内的随机整数
nextInt(n) 产生0~n随机整数 [0,n)
[0,max] 引用.nextInt(max+1)
[min,max] 引用.nextInt(max-min+1)+min
nextDouble() 产生[0,1)之间的随机小数
注意:此随机数是伪随机数。
- 测试java中的流程控制语句
- 顺序结构:从上倒下,从左到右
- 选择结构:根据选择,决定执行的内容
- 循环结构:重复执行某些内容
if..else
单分支|单选泽
if(条件表达式){
语句体;
}
条件表达式必须值为boolean类型的表达式。
如果条件表达式结果为false,就不执行跳过整个if结构。
如果条件表达式结果为true,执行{}中的语句体。
双分支|双选择
if(条件表达式){
语句体1;
}else{
语句体2;
}
无论是否满足条件,都会执行语句体
多分支|多选择:
if(条件表达式1){
语句体1;
}else if(条件表达式2){
语句体2;
}else if(条件表达式3){
语句体3;
}
....
else{
以上条件都不满足执行的内容
}
if语句和条件运算符之间的选择:
1.条件运算符肯定会得到结果。
2.麻烦的使用if,简单的能使用条件运算符就是用条件运算符。
无论是多选还是单选,双选,只要语句体只有1句,前后的{ }可以省略。
switch语句:定值判断
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
....
default:
语句体n;
break;
}
1.表达式|变量: byte、short、int、char,枚举(1.5版本才出现),字符串(1.7版本才出现)。
2.case:拿表达式的结果与case后的值进行判断,如果相同,执行对应的语句体。
3.break:结束这个switch语句,如果没有break会发生case穿透。
4.default: else作用一致,以上case都不满足条件,执行default中的语句体。
5.可以在switch语句中的任何位置,改变位置注意break的问题。
If和switch 的区别:
- if语句可以做区间判断,可以做定值判断。
- switch 只能做定值判断。