运算符
作用
对数据进行运算
分类
算数运算符
逻辑运算符
赋值运算符
三目运算符(三无运算符)
位运算符(了解)
算数运算符
+:加法
_:减法
*:乘法
/:除法
注意:不能为0
%:取余
++:自增
++在前:先自增再参与运算
++在后:先运算再参与自增
建议:++单独写一行
--:递减
--在前:先递减 再参与运算
--在后:先参与运算 再递减
优先级:
有括号先算括号中
有乘除先算乘除
从左向右依次计算
注意:可以给整型与浮点型使用
逻辑运算符
<:小于
<=:小于等于
>:大于
>=:大于等于
==:等于
基本数据类型判断值是否相同
引用数据类型判断内存地址是否相同
(不能判断字符串内容是否相同)
!=:不等于
基本数据类型判断值是否不相同
引用数据类型判断内存地址是否不相同
(不能判断字符串内容是否不相同)
&:与
概念:同真为真,有假为真
&&:短路与
概念:同真为真,有假为假
效率比&高
&&与&的区别
&
true&false&true&false...
逐个获取计算结果
&&
true&false&true&false...
遇到false直接结束
|:或
概念:有真为真,全假为假
||:短路或
概念:有真为真,全假为假
效率比|高
!:非
概念:非真为假,非假为真
!true结果为false
boolean b = false
!b结果为true
注意:
最终结果只能是boolean型
条件表达式:最终结果为boolean型的算数式都是条件表达式
与,或,非不包括最后运算
赋值运算符
=:赋值
将等号右边的值赋值给左边的变量
+=:加等
比如
int a = 10;
int b = 2;
//a = a + b
a += b
-=:减等
比如
int a = 10;
int b = 2;
//a = a - b
a -= b
*=:乘等
int a = 10;
int b = 2;
//a = a * b
a *= b
/=
%=
注意:等号两边数据类型要相同
三目运算符
语法:
条件表达式 ? 值1 : 值2
逻辑:
当条件表达式为true,取值1,当条件表达式为false,取值2
注意:
值1和值2数据类型要相同
可以使用变量
例子: 根据年龄判断是否成年?
int age = 18;
String str = age >= 18?"成年人":"未成年";
练习:
获取两个数的最大值
int a = 10;
int b = 20;
System.out.println(a > b?a:b);
获取三个数的最大值
class Demo01{
public.static.void.main(String[] agrs){
int a = 10;
int b = 30;
int c = 29;
int max = a > b ? a : b;
max = max > c ? max : c;
System.out.println(max);
}
}
数据类型转换
小类型转大类型
自动转换
int num = 10;
long l = num;
注意:小类型与大类型运算,结果为大类型
double d = 10 + 0.0;
大类型转小类型
强制类型转换
语法格式:小类型 变量命 = (小类型) 要转换的变量或数据;
long l = 10l;
int a = (int)l;
int i = 128;
byte b = (byte)i;
注意:强制转换会导致数据丢失
练习:
char c = 'a';
int i3 = c;
小写字母对应的数字:97~122
大写字母对应的数字:65~90
进制转换
二进制:
0,1,10,11,100,101,110...
八进制:
0,1,2,3,4,5,6,7,10,11,12,13...
十进制:
00,01,02,03,04,05,06,07,08,09,10...
十六进制:
0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f,10,11
十进制转换二进制 除2,余数倒读
十进制转换八进制 除8,余数倒读
十进制转换十六进制 除16,余数倒读 二进制转换为十进制
例子:
10100
1*2^4+0*2^3+1*2^2+0*2^1+0*2^0 16+0+4+0+0=20 位所在的数*2^(位数-1)+位所在的数*2^(位数-1)+...
八进制转换为十进制 例子:
26
2*8^1+6*8^0
2*8+6*1
16+6
22
位所在的数*8^(位数-1)+位所在的数*8^(位数-1)+... 十六进制转换为十进制
例子: AF
10*16^1+15*16^0
160+15
175
位所在的数*16^(位数-1)+位所在的数*16^(位数-1)+...
字符串判断内容是否相同
语法:
boolean 变量名 = 字符串1或字符串变量1.equals(字符串2或字符串变量2)
如:
String str01 = "Hello";
String str02 = "World";
boolean b = str01.equals(str02);
boolean b = "Hello".equals(str02);
boolean b = "Hello".equals("World");
boolean b = str01.equals("World");
字符串连接符
+
如:
int i = 10;
String str = "1";
String str02 = i + str;
练习:
String str01 = 1 + 2 + "3" 等于"33"
String str02 = "1" + 2 + 3 等于"123"
转意字符
概念:特殊含义的字符
\' 含义:'
\" 含义:"
\\ 含义:\
\n 含义:换行
\t 含义:制表
键盘录入
原因:提高代码的趣味性
对应类型:Scanner
使用步骤:
1,导包
位置:类以外
improt java.util.Scanner
2,创建Scanner对象
代码:
Scanner 变量名1 = new Scanneer(System.in);
3,等待用户输入,并获取用户输入结果(可以重复使用多次)
代码:
让用户输入字符串
String 变量名2 = 变量名1.next();
让用户输入整数
int 变量名2 = 变量名1.nextInt();
注意:
变量名2对应的内容就是用户输入的内容
next或nextInt都会阻塞程序,直到用户输入
建议:相当固定语法记,当面向对象学习完成后就理解了
分支语句
Java中的语句分类
顺序语句
特点:代码从上向下依次执行
分支语句
特点:提供多个分支只能选择一个执行
循环语句
特点:重复执行一段代码
软件作用
1,解决现实生活中的问题
2,虚拟一个世界
分支语句的作用
判断
分类
if
特点:可以判断内容是否相同,也可以判断区间
Swicyh
特点:只能判断值是否想用,效率稍微比if快
注意:只能判断8个基本数据与String的数据是否相等
if
简单的if结构
语法:
if(条件表达式){
当条件表达式为true,执行此处代码
}
if else结构
语法:
if(条件表达式){
当条件表达式为true,执行此处代码
}else{
当条件表达式为false,执行此处代码
}
else if结构
语法:
if(条件表达式1){
当条件表达式1为true,执行此处代码
}else if(条件表达式2){
当条件表达式2为true,执行此处代码
}else if(条件表达式3){
当条件表达式3为true,执行此处代码
}...
switch
else if(条件表达式n){
当条件表达式n为true,执行此处代码
}else{
当以上条件都不为true时,执行此处代码
}
总结
if必须有
else:可有可无,最多一个,必须在if的末尾
else if:可有可无,可以有多个
语法:
if(条件表达式1){
当条件表达式1为true,执行此处代码
}[else if(条件表达式2){
当条件表达式2为true,执行此处代码
}else if(条件表达式3){
当条件表达式3为true,执行此处代码
}...
else if(条件表达式n){
当条件表达式n为true,执行此处代码
}else{
当以上条件都不为true时,执行此处代码
}]
注意:[]中的内容可有可无
注意:if中可以使用if(if的嵌套)
switch
语法:
switch(变量){
case 值1:
当变量的值等于常量1时,执行此处代码
break; case 值2:
当变量的值等于常量2时,执行此处代码
break;
...
case 值n:
当变量的值等于常量n时,执行此处代码
break;
default:
当变量的值不等于以上常量时,执行此处代码
break; }
break:跳出当前代码块
{}:代码块
作用域
变量声明的大括号,就是变量的作用域