算符优先级 位运算符 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 }