算符优先级 位运算符 switch

  • 算符优先级

 

 

  ++优先级 高于> <  高于 && 高于||

 1      int a=12;
 2         int b=12;
 3         int i = 12;
 4         boolean bo = a++>0||b++<0&&i++<0;
 5         System.out.println(a);
 6         System.out.println(b);
 7         System.out.println(i);
 8         System.out.println(bo);
 9         System.out.println("***************************");
10         // &和|没有短路现象

结果

1 13
2 12
3 12
4 true
5 ***************************

说明:a++>0 为true 遇到||,然后将后面的全部短路,后面两个不用执行,直接返回true

  • 位运算符
 1         // &和|没有短路现象
 2         //^按位异或
 3         //前后两个数都转为二进制右侧
 4         //两者相同则为0,不同则为1
 5         a = 9^7;
 6         System.out.println(a);
 7         // >> <<
 8         //A>>B A为要处理的数字,B是位移的位数
 9         //向右移,溢出的位数,就丢失
10         //往左移,空出的位置补0
11         a = 15 >> 2;
12         System.out.println(a);
13         a = Integer.MAX_VALUE;
14         a = a << 31;
15         System.out.println(a);
16         System.out.println(Integer.MIN_VALUE);
17         
18         a = -1;
19         //1111 1111 1111 1111 1111 1111 1111 1111
20         System.out.println(a>> 1);
21         System.out.println(a>>> 1);

说明:

>>是右移操作,连同最高位一起移动

>>>是右移,最高位补零

 

  • switch
 1 //匹配switch
 2         //可以匹配整数,字符型,布尔型,字符型,字符串类型
 3         //不可以匹配浮点型,long类型
 4         String string = "hhr";
 5         a = 1;
 6         switch (string) {
 7         case "aaa":
 8             System.out.println(a);
 9             break;
10 
11         case "hhr":
12             System.out.println(a+1);
13             break;
14         default:
15             break;
16         }
  • 小练习
1 //打印100以内的数字
2         //不要3,7的倍数
3         for(i = 0 ; i < 100 ; i++) {
4             if(i % 3 == 0 || i % 7 == 0) {
5                 continue;
6             }
7             System.out.println(i);
8         }

  1 1 2 4 5 8 10 11 13 16 17 19 20 22 23 25 26 29 31 32 34 37 38 40 41 43 44 46 47 50 52 53 55 58 59 61 62 64 65 67 68 71 73 74 76 79 80 82 83 85 86 88 89 92 94 95 97  

 

 1 //嵌套循环
 2         for(i = 0 ; i < 5 ; i++) {
 3             for(int j = 0 ; j <= i ; j++) {
 4                 System.out.print(" ");
 5             }
 6             for(int j = 5 - i ; j > 0 ; j--) {
 7                 System.out.print("*");
 8             }
 9             System.out.println();
10         }
1  *****
2   ****
3    ***
4     **
5      *

 

 1 //打印1-100所有的素数
 2         for(i = 1 ; i <= 100 ; i++) {
 3             int flag = 0;
 4             for(int j = 2 ; j <= Math.sqrt(i) ; j++) {
 5                 if(i % j == 0) {
 6                     flag = 1;
 7                     break;
 8                 }
 9             }
10             if(flag == 0) {
11                 System.out.print(" " + i);
12             }
13         }
1  1 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97

 

 1 //找出1-100之间的数中,因数加起来等与自身的数字
 2         for(i = 1 ; i <=100 ; i++) {
 3             int sum = 0;
 4             for(int j = 1 ; j < i ; j++) {
 5                 if(i % j == 0) {
 6                     sum += j;
 7                 }
 8             }
 9             if(sum == i) {
10                 System.out.println(i);
11             }
12         }
1 6
2 28

 

 

 1 //数组
 2         //开辟六个空间的数组
 3         int arr[];
 4         arr = new int[6];
 5         arr = new int[]{1,2,3,4,5,6};
 6         //直接赋值 必须声明并直接赋值
 7         int[] arr1 = {1,2,3};
 8         //数组 java中的数组的类型和长度是不可变的
 9         System.out.println(arr[3]);
10         arr[3] = 12;
11         System.out.println(arr[3]);
12         //获取数组长度(属性)
13         System.out.println(arr.length);
14         for(i = 0 ; i < arr.length ; i++) {
15             System.out.print(" " + arr[i]);
16         }
1 4
2 12
3 6
 1 2 3 12 5 6

 

 

 1 //获取数组的最大值和最小值
 2         int array[] = new int[]{72,89,65,58,87,91,53,82,71,93,76,68};
 3         int maxxx = array[0];
 4         int minnn = array[0];
 5         for(i = 0 ; i < array.length ; i++) {
 6             if(array[i] < minnn) {
 7                 minnn = array[i];
 8             }
 9             if(array[i] > maxxx) {
10                 maxxx = array[i];
11             }
12         }
13         System.out.println("MAX : " + maxxx);
14         System.out.println("MIN : " + minnn);
15         
1 MAX : 93
2 MIN : 53

 

 1 //查找数组中是否有某一个数据
 2         int array1[] = new int[]{72,89,65,58,87,91,53,82,71,93,76,68};
 3         int num = 71;
 4         int f = 0;
 5         for(i = 0 ; i < array.length ; i++) {
 6             if(num == array1[i]) {
 7                 f = 1;
 8                 break;
 9             }
10         }
11         if(f == 1) {
12             System.out.println("Yes!I find it!");
13         }
14         else {
15             System.out.println("No!There havn`t");
16         }
1 Yes!I find it!

 

 1 //冒泡排序
 2         arr = new int[]{72,89,65,58,87,91,53,82,71,93,76,68};
 3         int temp;
 4         for(i = 0 ; i < arr.length - 1; i++) {
 5             for(int j = 0 ; j < arr.length - i - 1 ; j++) {
 6                 if(arr[j] > arr[j+1]) {
 7                     temp = arr[j];
 8                     arr[j] = arr[j+1];
 9                     arr[j+1] = temp;
10                 }
11             }
12         }
13         for(i = 0 ; i < arr.length ; i++) {
14             System.out.print(" " + arr[i]);
15         }
1   53 58 65 68 71 72 76 82 87 89 91 93

 

作业:

 1 public class homework {
 2     //1.对数组去重,打印出所有去重后的元素
 3     //2.打印出数组中每个元素和其出现的次数
 4     //选择排序
 5     public static void main(String[] args) {
 6         int nums[] = new int[]{72,72,72,72,89,65,58,87,91,53,82,71,93,76,68};
 7         quchong(nums);
 8         System.out.println();
 9         test2(nums);
10         System.out.println();
11         SelectionSort(nums);
12     }
13     
14     public static void quchong(int[] nums) {
15         HashSet<Integer> set = new HashSet<Integer>();
16         for(int i = 0 ; i < nums.length ; i++) {
17             set.add(nums[i]);
18         }
19         System.out.println(set);
20     }
21     public static void test2(int[] nums) {
22         HashMap<Integer, Integer> map = new HashMap<Integer , Integer>();
23         for(int i = 0 ; i < nums.length ; i++) {
24             if(map.get(nums[i]) == null) {
25                 map.put(nums[i], 1);
26             }
27             else {
28                 map.put(nums[i], map.get(nums[i])+1);
29             }
30         }
31         System.out.println(map);
32     }
33     public static void SelectionSort(int[] nums) {
34         for(int i = 0 ; i < nums.length - 1; i++) {
35             int min_index = i;
36             for(int j = i + 1 ; j < nums.length ; j++) {
37                 if(nums[j] < nums[min_index]) {
38                     min_index = j;
39                 }
40             }
41             int temp = nums[i];
42             nums[i] = nums[min_index];
43             nums[min_index] = temp;
44         }
45         for(int i = 0 ; i < nums.length ; i++) {
46             System.out.print(" " + nums[i]);
47         }
48     }

 

posted @ 2022-01-11 19:25  Nickeyhu  阅读(117)  评论(0编辑  收藏  举报