1.Java语言基础(逻辑运算符的基本用法)
1. 逻辑运算符:
&(并且),|(或者),!(非),^(异或),&&(短路与),||(短路或)
注意事项:
(1)逻辑运算符一般用于连接boolean类型的表达式或者值。
在Java中我们要表示一个数大于3并且小于6,不可以写成3<x<6,应该写成x>3 & x<6。
(2)表达式:就是用运算符把常量或者变量连接起来的符合Java语法的式子。
算数表达式:a + b
关系表达式:a == b
2. 结论:
(1)& 逻辑与:有false则false。
(2)| 逻辑或:有true则true。
(3)^ 逻辑异或:相同为false,不同为true。
举例:情侣关系。男女,女男
(4)!逻辑非:非false则true,非true则false。
特点:偶数个不改变本身。
2.Java语言基础(逻辑运算符&&和&的区别)
1. &&和&的区别?
(1)最终结果一样。
(2)&&具有短路效果。左边是false,右边不执行。
2. 同理||和|的区别?
(1)相同点:当&与&&同为逻辑运算符时,它们都用于连接两个Boolean类型的表达式,当&和&&的两端表达式同时为真时,表达式的结果为真,只要有一端为假,那么表达式结果为假。从用法上来看,&和&&并没有什么区别。
(2)不同点:&无论左边结果是什么,右边还是继续运算。&&当左边为假,右边就不在进行运算,但是两者的结果是一样的。
(3)注意:两个运算符的用法相同,但是,当在判断这个表达式的真或假的时候,两者的判断次数不同。
例如,在判断2>6&2>1的时候,先判断2>6值的真假,然后在判断2>1的真假,所以最后的结果是假&真,为假。
在判断2>6&&2>1的时候,计算机会先判断2>6值的真假,因为这个表达式的结果为假,之后计算机就不会再进行判断,所以这个表达式的结果为假。
3. 开发中常用:&&,||,!
3.Java语言基础(位运算符的基本用法1)
1. 位运算符:
&(与),|(或),^(异或) , ~(按位取反) , <<(左移) ,>>(右移) ,>>>(无符号右移)
注意:位运算是直接对二进制补码进行运算。运算效率高一些
2. &,|,^,~ 的用法
结论:
(1)&:有0则0
(2)|:有1则1
(3)^:相同则0,不同则1
(4)~:按位取反 0变1 1变0 符号位也包含在内取反
4.Java语言基础(位异或运算符的特点)
一个数据被另一个数据位异或两次,该数本身不变,自己位异或自己是0,例如,8^8的结果是0。
5.Java语言基础(位运算符的基本用法2)
1. (1)<<:左移 空位补0,被移除的高位丢弃。
(2)>>:右移 被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,高位补1。
(3)>>>:无符号右移 被移位二进制最高位无论是0或者是1,空缺位都用0补。
2. 结论:
(1)<< : 把<<左边的数据乘以2的移动次幂 例如 10<<3 结果 10*2^3=80
(2)>> : 把>>左边的数据除以2的移动次幂 例如 40>>3 结果 40/2^3=5
6.Java语言基础(三元运算符的基本用法)
1. 三元(三目)运算符的格式
(关系表达式) ? 表达式1 : 表达式2;
int a=(10>20)?30:50; a=50
2. 三元运算符的执行流程
计算关系表达式的值,如果为true, 运算后的结果是表达式1; 如果为false,运算后的结果是表达式2;
7.Java语言基础(键盘录入的基本格式讲解)
1. 为什么要使用键盘录入数据
(1)为了让程序的数据更符合开发的数据
(2)让程序更灵活
2. 实现键盘录入的格式:
(1)导包
a. 格式:
import java.util.Scanner;
b.位置:
在class上面
(2)创建键盘录入对象
格式:
Scanner sc = new Scanner(System.in);
(3)通过对象获取数据
格式:
int x = sc.nextInt();
8.Java语言基础(顺序结构语句)
1. 什么是流程控制语句
在一个程序执行的过程中,各条语句的执行顺序对程序的结果是有直接影响的。也就是说程序的流程对运行结果有直接的影响。所以,我们必须清楚每条语句的执行流程。而且,很多时候我们要通过控制语句的执行顺序来实现我们要完成的功能
2. 流程控制语句的分类
顺序结构
选择结构
循环结构
3. 顺序结构
是程序中最简单最基本的流程控制,没有特定的语法结构,按照代码的先后顺序,依次执行,程序中大多数的代码都是这样执行的。总的来说:写在前面的先执行,写在后面的后执行
4. 执行流程:
从上往下,依次执行。
9.Java语言基础(选择结构if语句格式1及其使用)
1. 概述:也被称为分支结构。
选择结构有特定的语法规则,代码要执行具体的逻辑运算进行判断,逻辑运算的结果有两个,所以产生选择,按照不同的选择执行不同的代码。
2. 选择结构的分类
(1)if语句
(2)switch语句
3. if语句的格式1
if(比较表达式或者是boolean类型的值){
语句体;
}
4. 执行流程:
(1)先计算比较表达式的值,看其返回值是true还是false;
(2)如果是true,就执行语句体;
(3)如果是false,就不执行语句体;
10.Java语言基础(选择结构if语句的注意事项)
1. 比较表达式无论是简单还是复杂,结果必须是boolean类型;
2. if语句控制的语句体如果是一条语句,大括号可以省略;如果是多条语句,就不能省略。这里建议永远不要省略。
3. 一般来说,有左大括号就没有分号,有分号就没有左大括号。
11.Java语言基础(选择结构if语句格式2及其使用)
1.if语句的格式2:
if(比较表达式){
语句体1;
}else{
语句体2;
}
注意事项:else后面是没有比较表达式的,只有if后面有。
2. 执行流程:
(1)首先计算比较表达式的值,看其返回值是true还是false。
(2)如果是true,就执行语句体1;
(3)如果是false,就执行语句体2;
12.Java语言基础(if语句的格式2和三元的相互转换问题)
1. 三元运算符实现的,都可以采用if语句实现。反之不成立。
2. 什么时候if语句实现不能用三元改进呢?为什么呢?
当if语句控制的操作是一个输出语句的时候就不能。因为三元运算符是一个运算符,运算符操作完毕就应该有一个结果,而不是一个输出。
13.Java语言基础(选择结构if语句格式3及其使用)
1. if语句的格式3:
if(比较表达式1) {
语句体1;
}else if(比较表达式2) {
语句体2;
}else if(比较表达式3) {
语句体3;
}
...
else {
语句体n+1;
}
2. 执行流程:
(1)首先计算比较表达式1看其返回值是true还是false;
(2)如果是true,就执行语句体1,if语句结束。
(3)如果是false,接着计算比较表达式2看其返回值是true还是false,如果是true,就执行语句体2,if语句结束。如果是false,接着计算比较表达式3看其返回值是true还是false,
...
如果都是false,就执行语句体n+1。
3. 注意事项: 当只要有一个条件满足时,if语句结束。else是可以省略,但是不建议省略。
14.Java语言基础(选择结构switch语句的格式及其解释)
1. switch语句的格式
switch(表达式){
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
....
default:
语句体n+1;
break;
}
2. switch语句的格式解释
(1):switch表示这是switch语句
表达式的取值:byte,short,int,char
JDK5以后可以是枚举(什么是枚举,以后再讲)
JDK7以后可以是String
(2):case后面跟的是要和表达式进行比较的值,要的是常量值
(3):语句体部分可以是一条或多条语句
(4):break表示中断,结束的意思,可以结束switch语句
(5):default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似
3. byte可以作为switch的表达式吗?
long可以作为switch的表达式吗?
String可以作为switch的表达式吗?JDK1.7
答:String 类型可以 ,在 switch( expr1)中, expr1 只能是一个整数表达式或者枚举常量(更大字体),整数表达式可以是 int,基本类型或 Integer 包装类型,由于, byte,short,char 都可以隐含转换为 int,所以,这些类型以及这些类型的包装类型也是可以的。显然, long 和并且不能被隐式转换成 int类型,所以,它们不能作用于 swtich 语句中。
4. 执行流程
(1)先计算表达式的值
(2)然后和case后面的匹配,如果匹配成功就执行对应的语句,遇到break就会结束,否则执行default控制的语句
15.Java语言基础(选择结构switch语句的注意事项)
1. case后面只能是常量,不能是变量,而且,多个case后面的值不能出现相同的值
2. default可以省略吗?
可以省略,但是不建议,因为它的作用是对不正确的情况给出提示。
3. break可以省略吗?
可以省略,但是结果可能不是我们想要的。但是会出现一个现象:case穿透。所以我们建议不要省略。
3. default一定要在最后吗?
不是,可以在任意位置。但是建议在最后。
4. switch语句的结束条件
(1)遇到break就结束了
(2)执行到末尾就结束了
16.Java语言基础(选择结构if语句和switch语句的区别)
在做判断的时候,我们有两种选择,if语句和switch语句,那么,我们到底该如何选择使用那种语句呢?
(1)if语句使用场景:
针对结果是boolean类型的判断
针对一个范围的判断
针对几个常量值的判断
(2)switch语句使用场景:
针对几个常量值的判断