1 运算符
1.1算术运算符
运算符:对常量和变量进行操作的符号(+、-、*、/、%)
表达式:用运算符把常量或者变量链接起来的符合java语法的字符串 称为表达式
1.2算术运算规则
整数运算:如果操作数为byte、short、int时结果都为int型,如果操作数中有long型则结果为long型。
浮点运算:如果操作数都是float型结果可用float保存也可用double保存(类型自动转换),如果有一个操作数为double则结果为double型。
求模(取余)运输:结果为两个数的余数,余数符号与左边操作数符号相同。一般使用整数运算,浮点数运算只能取近似,精度会有误。
1.3字符的操作
char类型参与算术运算,使用ASCll码
‘a’ —— 97 (a-z连续)‘A’ —— 65(A-Z连续)‘0’ —— 48(0-9连续)
算术表达式包含多个操作数时,整个算术表达式的类型会自动提升到操作数中的最高数据类型。
byte、short、char、int—>int—>long—>float—>double
1.4字符串的操作
字符串和数值型数据进行“+”运算 时进行的是字符串拼接,而不是算术运算,拼接时从左到右依次拼接;“+”称为字符串连接符
1.5赋值运算符
赋值运算符 = ,拓展赋值运算符 +=、-=、*=、/=、%= 先进行算术运算,再赋值
拓展赋值运算符内含强制类型转换
1.6自增自减运算符
自增 ++ 自减 -- ++a 先增再用 a++ 先用再增 --a先减再用 a-- 先用再减
1.7关系运算符
== 、 != 、 > 、 < 、>= 、 <=
关系运算符结果都是boolean类型 true和false
注意 == 不要写成 =
1.8逻辑运算符
1.8(1)逻辑运算符
&(与) a&b a、b都为true结果为true,否则为false。
|(或) a|b a、b都为false结果为false,否则为true。
^(异或) a……b a、b相同为false,不同为true。
!(非)!a true变false,false变true。
java中表示区间的数不能一次表达 必须拆分成两部分。
例: 3<x <6 拆分成 3>x 和 x<6 Java中表示为 x>3 & x<6
1.8(2) 短路逻辑运算符
&&(短路与)作用和&相同 但有短路效果
||(短路或)作用和|相同 但有短路效果
&、| 无论左边真或假右边都会执行
&& 如果左边为真,右边会执行;如果左边为假,右边不会执行
|| 如果左边为真,右边不会执行;如果左边为假,右边会执行
1.9位运算符
位运算指的是进行二进制位的运算
~(取反)原数基础上+1取负 ~3 = -4
&(按位与)二进制下,都是1时结果为1,否则为0。
|(按位或)二进制下,都是0时结果为0,否则为1。
^(按位异或)二进制下,相同时结果为0,不同时结果为1。
<< 、>>(左移、右移)将整个二进制数左(右)移一位 相当于将原来的数乘(除)2
1.10三元(三目)运算符
格式:表达式1 ?表达式2 :表达式3
运算规则:判读表达式1的值,如果为true输出结果为表达式2,如果为false输出结果为表达式3
ps:作用可类似于if……else语句
2.流程控制语句
分类:
顺序结构
分支结构(选择结构) if switch
循环结构 for while do……while
2.1 顺序结构
程序从main方法开始,自上而下依次执行。
2.2分支结构(选择结构)(可嵌套)
2.2.(1)if
单分支:
if(关系表达式){//表达式为true执行语句块,否则跳过。 语句块 }
双分支 (if……else):
if(关系表达式){//表达式为true执行语句块1,否则执行语句块2。 语句块1 }else{ 语句块2 }
多分支(if……else if):
if(表达式1){ 语句块1 }else if(表达式2){ 语句块2 }else if(表达式3){ 语句块3 }……else { 语句块n }
嵌套分支 :语句块可为新的if分支
2.2.(2)switch
switch(判断式){ case 值1: 语句1; break; case 值2: 语句2; break; …… default: 语句n; break }
1.switch语句必须使用在可穷举的情况下,即表达式的类型为:char,byte,short,int,enum(枚举),string(jdk7以上)
2.break作用:结束当前执行,如果没有break将发生case穿透。
3.default可以出现在任意位置
4.对于case如果对应相同的代码,可省略部分代码。
2.3.(3)if和switch的区别
1.if判断范围,switch判断值。
2.switch判断的值可穷举。
3.能用switch实现的if也可实现,能用if实现的switch不一定能实现。
2.3循环结构(可嵌套)
for while do……while
特点:
2.3.(1)for循环(先判断后执行)
for(初始化语句;条件判断语句;条件控制语句){ 语句 }
循环语法规则
1.初始化语句,可有数条语句,对数据进行初始化。
2.条件判断语句,结果为boolean值,决定了循环体是否执行。
3.循环语句,可有数条语句,也可是其他结构如if语句或其他循环语句
4.条件控制语句,改变条件判断的值的语句,使用自增自减居多
2.3.(2)while循环(先判断后执行)
while(条件判断语句){ 循环语句; 条件控制语句; }
2.3.(3)do……while循环(先执行后判断,至少执行1次)
do{ 循环语句; 条件控制语句; }while(条件判断语句);
do……while使用场景:用户登录
三种循环区别:
1.for循环和while循环都是先判断后执行。
2.do……while先执行一次后判断。
3.for循环变量仅作用于循环内,whlie循环变量可作用于循环外
2.4跳转控制语句
break :在任何循环语句的主体中可采用break来强制结束所有循环。
continue:在任何循环语句的主体中使用continue结束当前循环开始下次循环。
带标签的break和continue:结束循环跳转到标签处继续运行。