(一)变量
1.变量使用步骤:
变量声明
变量赋值
变量使用
1和2可以合并成一行代码
语法: 数据类型 变量名 = 值;
2.整型赋值的注意事项:
byte short int long
如果变量是 byte: 赋值的数字 ~128 - 127 之间, 可以直接赋值
byte b = 121;
但是如果数字超出该范围, 直接赋值报错
一句话: 整型类型赋值,数字超出类型的范围, 报错, 如果没有超出,不报错
3.浮点型:
float: 单精度浮点数
double: 双精度浮点数
小数的数据类型,默认是 double类型, double的优先级高于float,
float num = 1.2; 1.2 double类型, 相当于把double类型转换为float类型, 但是float类型比double低
相当于把高的转换为低的, 无法自动转换,报错
数据类型转换:
1) 由低转换为高 , java 自动转换
2) 由高转换到底: 无法自动转换, 需要手动强制进行转换: 数据类型(低) 变量名 = ()值(高的值);
double a = 1.2;
float b = (float)a;
int c = (int)a;
(二)Scanner 输入
1.使用步骤:
1)在类上导入 Scanner类, 位于java.util包: import java.util.Scanner;String/System 不需要导包, 位于java.lang包, 程序自动加载java.lang下的类
2)创建Scanner Scanner input = new Scanner(System.in);
3)调用next相关的方法, 进行输入
nextInt() 输入一个整型
nextDouble() 输入一个double浮点数
nextBoolean() nextFloat()....
但是: 不能输入char 没有nextChar()
next() 输入字符串 nextLine() 输入字符串
细节:
输入字符串: next() nextLine()
next() 输入有效字符串, 不包含 空格,tab,回车, 遇到空格,tab,回车,都结束输入
但是空格,tab,回车内容 保存到缓存中
nextLine() 输入字符串,包含空格, 但是nextLine() 前面有其他 next() nextInt() nextDouble()...
nextLine() 不起作用, 无法输入
解决方案:
1. nextLine() 放在所有的next方法之前
2. nextLine() 不在第一个位置: 使用nextLine() 再加一个nextLine()
(三)运算符
1.算术运算符: + - / * %
2.赋值运算符: =
3.比较运算符: > < >= <= == !=
4.逻辑运算符: &&(与) || (或) ! &(与) | (或)
5.++,-- 运算符
6.位运算: &(与) |(或) ^(异或)
1. 算术运算符
+: 1) 数值类型 + 加法
2) 字符串与任意的类型 +, 表示拼接, 结果:字符串
/: 1) 整数/整数 整除(结果取整)
2) 除数或者是被除数是浮点类型, 除法, 结果带小数
%: 取余 5%2= 1
作用:
1) 判断是否整除
2) 得到某位的数值, 对某个数进行缩小归类
2.自加,自减
++: 加1 语法 变量++ ++变量
前加加 ++变量 步骤: 先变量加1 , 后赋值, 整个表达式的值 = 变量的值
>int a = 10;
>
>//++a; //1) a = a+1 a=11 2) 赋值 (++a) = a; (++a) = 11
>
>int b = ++a; //1) a = a+1 a=11 2) 赋值 (++a) = a; (++a) = 11 3) 赋值符号: 把++a表达式的值赋给b
后加加: 变量++ 先赋值: 变量的值赋给表达式 后加1: 变量加1
int a = 10;
int b = a++; //1) 先赋值, 把a的值赋值给(a++)表达式 10 2) 加1: a = a+1, a=11 3)再把表达式结果赋值给b b = 10
-- 减1
前减减: --变量: 先减1, 再赋值
后减减: 变量--: 先赋值,再减1
3. 赋值运算符
1)= 语法: 变量 = 值; 变量 = 变量1; 不能写: 值 = 变量; 错误, 把赋值符号右边赋值给左边
2)+= a += b; a = a+b;
3)-= a -= b; a= a-b;
4)*= a * = b; a = a*b;
5)/= a /= b; a = a/b;
6)%= a%=b; a= a%b;
赋值符号与算术符号组合的赋值符号: 隐式数据类型转换
a += b; 把a+b的结果 转换为a的类型
4. 比较运算符
比较运算符结果: boolean类型: true/false
使用场景: 条件语句, 循环语句
== 等于, = 赋值符号
!= 不等于
>大于
< 小于
>= 大于等于
<= 小于等于
5.逻辑运算符
&& 短路与, 如果第一个表达式的结果为false, && 后面的表达式都不执行(类似电路的短路)
|| 短路或: 如果第一个表达式的结果为true, || 后面的表达式都不执行(类似电路的短路)
! 非
& 与 没有短路
| 或 没有短路
结果: boolean 类型
使用的场景: 条件,循环中, 连接多个比较表达式
6.三目运算符
语法: 条件(boolean的表达式)?值1:值2
如果条件为true: 返回值1, 如果条件为false, 返回值2
三目运算符可以嵌套:
条件1?值1:(条件2?值2:值3)
返回值的类型以第一个为主
对if-else 某些场景的简化, if-else返回结果, 可以使用三目运算替换,
7)位运算
二进制的位运算
&: 按位与 : 1:true 0:false 只要位上有一个为0, 结果:0 位上都为1, 结果: 1
|: 按位或: 只要位上有一个为1: 结果: 1 位上都是0: 结果: 0
!: 按位非 : 1 -取反-> 0 0-取反->1
^: 异或: 相同为0 , 不同为1 一个数异或某个数两次,等到自己
移位操作: 拓展
>>右移
<<:左移
java: 十进制, 八进制, 十六进制:
int a = 123; //十进制数
int b = 0123; //八进制
int c = 0x123; //十六进制