1、运算符
(1)算术运算符:
x++:先取值,后运算
a=2;b=++a ----->a=3;b=3
++x:先运算,后取值
a=2;b=a++ ----->a=3;b=2(--同理)
+:可用于字符串的拼接,如“ hel”+“lo”---->“hello”
(2)比较运算符:比较的结果为ture或false
instanceof:检查是否是类的对象:(变量)instanceof(类名):(结果)
(3)逻辑运算符
● &—逻辑与 | —逻辑或 !—逻辑非
● && —短路与 || —短路或 ^ —逻辑异或
& : 逻辑与 所有的表达式结果为true,结果为true,否则为false 当第一个表达式结果为false时,还会继续执行后面其他的表达式 &&: 逻辑与/短路与 所有的表达式结果为true,结果为true,否则为false 当第一个表达式结果为false时,不会继续执行后面其他额表达式 |: 逻辑或 当表达式中有一个是true时,结果是true 当第一个表达式是为true时,还会继续执行后面其他的表达式 ||: 逻辑或/短路或 当表达式中有一个是true时,结果是true 当第一个表达式是为true时,不会继续执行后面其他的表达式 ! : 逻辑非 !true -->false ^ : 逻辑异或 相同为false 不同为ture
&与&&的区别:
单&时,左边无论真假,右边表达式都进行运算;
双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算
(|与||的区别同理)
建议:开发中推荐使用&& 与 ||
(4)赋值运算符
要注意分清==与=的区别
注意: 当“=”两侧数据类型不一致时,可以使用自动类型转换或使用强制类型转换原则进行处理
(5)条件运算符
(条件表达式)? 表达式1:表达式2;
若条件表达式为ture,则结果为表达式1,若条件为false,则结果为表达式2
(6)位运算
<< 空位补0,被移除的高位丢弃,空缺位补0
>> 被移位的二进制最高位是0,右移后,空缺位补0; 最高位是1,空缺位补1
>>> 被移位二进制最高位无论是0或者是1,空缺位都用0补
& 二进制位进行&运算,只有1&1时结果是1,否则是0
| 二进制位进行 | 运算,只有0 | 0时结果是0,否则是1;
^ 相同二进制位进行 ^ 运算,结果是0;1^1=0 , 0^0=0 不相同二进制位 ^ 运算结果是1。1^0=1 ,
~ 正数取反,各二进制码按补码各位取反 负数取反,各二进制码按补码各位取反
2、控制台输入
Java通过Scanner类来实现控制台输入
步骤:(1)导包:import java.util.Scanner;
(2)创建Scanner类型的对象:Scanner scan = new Scanner(System.in);
(3)调用Scanner类的相关方法:
next()方法用以 取得用户输入的字符
nextInt()将取得的输入字符串转换为整数类型;
nextFloat()转换成浮点型;
nextBoolean()转 换成布尔型
3、控制语句
(1)条件语句
【1】if-else
if条件结构是根据条件判断之后再做处理
【优势】:if语句的条件是一个布尔类型值,if条件表达式为true则进入分支,可以用于范围的判 断,也可以用于等值的判断,使用范围更广。 switch语句的条件是一个常量值(byte,short,int,char,枚举,String),只能判断某个 变量或表达式的结果是否等于某个常量值,使用场景较狭窄。
【2】switch:多分支选择语句,根据表达式的值,来执行多个操作中的一个。
表达式可以是byte、short、int、char、枚举类型、String类型;case语句后面只能使用常量表达式; case后的值不能重复;
某个case分支如果没有提供break语句,则继续执行下一个case后的语句; 当表达式的值与任一case子句中的值都不匹配时,将执行default后面的语句; 如果没有default子句,则程序直接跳出switch语句
【优势】:当条件是判断某个变量或表达式是否等于某个固定的常量值时,使用if和switch都可 以,习惯上使用switch更多。因为效率较高。当条件是区间范围的判断时,只能使用if 语句
【二者比较】:凡是使用switch-case的结构都可以转换为if-else结构。反之,不成立。 开发经验:如果既可以使用switch-case,又可以使用if-else,建议使用switch-case。 因为效率稍高。
(2)循环语句
【while 语句】:
初始化部分
while(逻辑表达式)
{ 循环体 迭代部分 }
执行过程:先判断逻辑表达式的值。 若=true.则执行其后面的语句,然 后再次判断条件并反复执行,直 到条件不成立为止
【do-while 语句】:
do { 语句; … ; }
while(逻辑表达式);
执行过程:先执行语句,再判断逻辑表达式的值,若 为true,再执行语句,否则结束循环
【for循环】:
for(表达式1; 表达式2; 表达式3){ 语句; … ; }
执行过程:首先计算表达式1,接着执行表达式2,若表达式2的值 = true,则执行循环语句, 接着计算表达式3,再判断表达式2的值;依此重复下去,直到表达式2的值=false
(3)break & cotinue
break 语句用于终止某个语句块的执行。用在 循环语句体中,可以强行退出循环
continue 语句用在循环语句体中,用于终止某 次循环过程,跳过循环体中 continue 语句下 面未执行的循环,开始下一次循环过程
【如果需要从多层循环跳出,则需要使用标签,定义一个标签,如label, 然后在需要跳出的地方,用break label就行了】