逻辑运算符
&:逻辑与 遇false则false
|:逻辑或 遇true则true
^: 逻辑异或 相同则false 不同为true
!: 逻辑非 取反 非true则false 非false则true
&&:结果和& ,如果左边为false右边不执行,结果是false
||:结果和|一样,如果左边为true右边不执行,结果是true
位运算符:
&: 位与,有0则0
|: 位或,有1则1
^: 位异或,相同则0,不同则1
~: 位取反,按位取反,包括符号位。0变1,1变0
<<:左移 左边最高位丢弃,右边补齐0
>>:右移 最高位是0,左边补齐0;最高为是1,左边补齐1
>>>:无符号右移 无论最高位是0还是1,左边补齐0
面试题: 2 * 8
2 << 3 //相当于 2 * 2的3次幂
面试题:实现两个整数变量的交换
a = a ^ b;
b = a ^ b;
//b = a ^ b ^ b;
//b = a;
a = a ^ b;
//a = a ^ b ^ a ^ b ^ b;
//a = b ;
int temp = a;
a = b;
b = temp;
三元(目)运算符:
格式:条件(关系)表达式 ? 表达式1 :表达式2;
练习题:1、比较两个整数是否相同。
boolean b = (2 == 3)? true : false; //false
2、求三个整数中的最大值
int temp = (a > b) ? a : b;
int max = (temp > c) ? temp : c;
键盘录入:
Scanner:
步骤:
/*
1 导包
*/
import java.util.Scanner;
class Demo_Scanner {
public static void main(String[] args) {
//创建Scanner对象
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数据:");
//提示
//调用键盘录入的方法
int i = sc.nextInt();
//提示
System.out.println("请输入第二个数据:");
//调用键盘录入的方法
int j = sc.nextInt();
//输出这个值
System.out.println("这两个数的和是:"+(i+j));
}
}
练习:
1、键盘录入两个数据,比较这两个数据是否相等。
2、键盘录入三个数据,获取这三个数据中的最大值。
流程控制语句:可以控制程序的执行流程。
分类:
顺序结构:从上往下,依次执行
选择结构:
if语句:
格式1. if( 条件表达式 ) {
语句体;
}
执行流程:
先计算比较表达式的值,看其返回值是true还是false。
如果是true,就执行语句体;
如果是false,就不执行语句体;
注意事项: 1.条件表达式不论简单还是复杂,结果都是布尔类型的!
2.if语句控制的语句体如果是一条语句,大括号可以省略;
如果是多条语句,就不能省略。建议永远不要省略。
3.一般来说if的小括号后边,有分号就没有左大括号,有左大括号就不能有分号。
格式2. if(条件表达式) {
语句体1;
}else {
语句体2;
}
执行流程:
首先计算比较表达式的值,看其返回值是true还是false。
如果是true,就执行语句体1;
如果是false,就执行语句体2;
格式3. if(条件表达式1) {
语句体1;
}else if(条件表达式2) {
语句体2;
}else {
语句体3;
}
if与三元运算符的关系:三元运算符可以实现的,if都可以实现,反之不一定。
练习题:键盘录入一个成绩,判断(判断标准见备注)并输出成绩的等级。
90-100 优
80-89 良
70-79 中
60-69 及
0-59 差
switch语句:
格式:
switch(表达式) { //byte short char int 1.5 枚举 1.7 String
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
default:
语句体3;
break;
}
执行流程:
1.先计算表达式的值
2.然后和case后面的匹配,如果有就执行对应的语句,否则执行default控制的语句
练习题:给定一个值(整数),输出对应星期几。
1 星期一
2 星期二
....
注意事项:
1.case对应的值一定是常量。
2.default可以不写,也可写到最前面。
3.break必须写,不写可能会产生case穿透。
4.结束条件:遇到break,遇到switch的右大括号。
习题:
A:看程序写结果:
int x = 2;
int y = 3;
switch(x){
default:
y++;
break;
case 3:
y++;
case 4:
y++;
}
System.out.println("y="+y);//4
B:看程序写结果:
int x = 2;
int y = 3;
switch(x){
default:
y++;
case 3:
y++;
case 4:
y++;
}
System.out.println("y="+y);//6
if和switch的区别:
if判断区间范围
switch判断具体固定的值
|
|