其他分享
首页 > 其他分享> > 07.11 课堂笔记

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