07.11 课堂笔记
作者:互联网
0711课堂笔记
上午
一、运算符
1.逻辑运算符
与运算
//A&&B A和B都为TRUE 表达式的结果才TRUE
boolean bool = price>=2000&&price<=3000;或运算
//A||B A或B有一个为TRUE 则表达式的结果就为TRUE
bool = price<2000 || price>5000;非运算
int age = 23;
bool= !(age<20);短路
//与运算的短路
int a=1;
bool = a++<0&&a++!=0;//A&&B A为FALSE B不需要被运算(被短路)
System.out.println(bool);
System.out.println(a);//或运算的短路
a=1;
bool = a++>0||a++!=0;//A||B A为TRUE B不需要被运算(被短路)
System.out.println(bool);
System.out.println(a);
2.一元运算符
a++后加加:先赋值后加加 (赋值给表达式a++)
++a前加加:先加加后赋值
a--后减减:先赋值后减减
--a前减减:先减减后赋值
a=1;
int b = a++;
System.out.println(b);
//b输出结果为1
a=1;
int b=++a;
System.out.println(b);
//b输出结果为2
3.位运算符(二进制数值运算)(位运算没有短路现象)
将A和B转换为二进制 右上对齐,上下位比较
①.&按位与(有0则0 全1才1)
int a,b;
a=192;
b=255;
res = a&b;
System.out.println(res+" 与运算 a&b");
//输出结果为192②.|按位或(有1则1 全0才0)
res = a|b;
System.out.println(res+" 或运算 a|b");
//输出结果为255③.^按位异或(两个相同则为0 不同则为1)
res = a^b;
System.out.println(res+" 异或运算 a^b");
//输出结果为63
4.三元运算符(A?B:C)
看A(Boolean)的结果,如果是TRUE则取B的值,如果是FALSE则取C的值
double price = 2900;
int x = price < 3000 ? 'a':'b';
System.out.println(x=='a'?"yes":"no");
//输出结果为yes
5.移位运算符
①.<<
A<<B A的二进制向左移B位
res = 7<<2;// 7=>111 左移两位后 : 11100=>28
System.out.println(res);
//输出结果为28
②.>>
A>>B A的二进制向右移B位
res = -1>>2;
//-1=> 1111···1111
//向右移两位后 新空位补1 : 1111111···111
//res = -1
System.out.println(res);
③.>>>
A>>>B A的二进制带符号位一起向右移B位
res = -1>>>2;
//-1=>1111····1111
//带符号位向右移两位 新空位补符号位0 : 001111···1111
//res = 1073741823
System.out.println(res);
注意
a=1;
boolean bool = a++>0||a++<0&&a++!=0;
//短路现象优先级高于 与、或
System.out.println(bool);//true
System.out.println(a);//a=2
下午
实例
交换两数的值
public static void main(String[] args) {
int a=12;
int b=23;
//1.借助第三变量
int c;
c=a;
a=b;
b=c;
System.out.println(a);
System.out.println(b);
//2.求和
a=12;
b=23;
a= a+b;
b=a-b;
a=a-b;
System.out.println(a);
System.out.println(b);
//3.异或
a=12; // 01100
b=23; // 10111
a=a^b;//a=11011
b=a^b;//b=01100=12
a=a^b;//a=10111=23
System.out.println(a);
System.out.println(b);
}
二、分支判断
1. if语句
if...else...
int price=12;
if (price>20) {
System.out.println("这是一个刺客");
}else {
System.out.println("还ok");
}if...else if...else
Scanner sc = new Scanner(System.in);
int grade = sc.nextInt();
if (grade>=90){
System.out.println("优秀");
}
else if (grade>=80){
System.out.println("良好");
}
else if (grade>=60){
System.out.println("及格");
}
else {
System.out.println("不及格");
}
实例
看看能卖什么车
Scanner sc = new Scanner(System.in);
long deposit = sc.nextLong();
if (deposit<1000){
System.out.println("买个自行车吧");
}
else if (deposit<10000){
System.out.println("夏利欢迎你");
}
else if (deposit<1000000){
System.out.println("宝马欢迎你");
}
else if (deposit<1000000000){
System.out.println("随便买");
}
2. switch...case...default 匹配性分支
Switch当匹配到某一个case项 并从这里开始运行 可以用break进行语句控制 (可以匹配的类型有:byte 、short、int、char、string、枚举类型)
Scanner sc = new Scanner(System.in);
int a=sc.nextInt();
switch (a){
case 1:
case 2:
case 3:
System.out.println("第一季度");
break;
case 4:
case 5:
case 6:
System.out.println("第二季度");
break;
case 7:
case 8:
case 9:
System.out.println("第三季度");
break;
case 10:
case 11:
case 12:
System.out.println("第四季度");
break;
default:
System.out.println("other");
break;
}
三、数组
1.定义(声明)
静态:
int[] arr = {1,2,3,4,5};
arr = new int[]{1,3,5,6};动态:
arr = new int [6];
arr[1]=12;
2.数组的使用
使用下表来调用元素
开始的下标位0
arr[1]= (int)2.00000000000001000000000000000;
double[] d={80,90,70,60};
for (double x:d)
System.out.println(x);
/*输出结果为:
80.0
90.0
70.0
60.0
*/
for (int y:arr)
System.out.println(y);
/*输出结果为
0
2
0
0
0
0
*/
二维数组只能约束自身子元素的个数 不能约束子元素的中元素的个数
int [] arr1 = {1,2,3,4,5};
int [][] arr2 = new int[3][2];//int[3][2]的2可以省略
arr2[0] = arr1;
arr2[1] = new int[]{2, 3, 4, 5, 6, 7};
for (int x:arr2[1])
System.out.println(x);
3.弊端:
1.已经声明的数组不可以扩容
2.已经声明的数组储存的元素类型是固定的
课后作业01
声明一个数组 用控制台输入他的值 并打印出来
public static void main(String[] args) {
//数组赋值
int [] arr = new int[3];
Scanner sc = new Scanner(System.in);
for (int i=0;i<arr.length;i++) {
int x = sc.nextInt();
arr[i]=x;
}
for (int y :arr)
System.out.println(y);
}
输入值:1 2 3
输出结果 :
1
2
3
课后作业02
编写代码 打印出以上数组所有元素之和
public static void main(String[] args) {
int [] arr = new int[3];
Scanner sc = new Scanner(System.in);
for (int i=0;i<arr.length;i++) {
int x = sc.nextInt();
arr[i]=x;
}
//求和
int sum=0;
for (int x : arr)
sum+=x;
System.out.println(sum);
}
输入值:4 5 6
输出结果:15
标签:case,int,res,System,笔记,07.11,println,课堂,out 来源: https://www.cnblogs.com/qq1078973635/p/16467593.html