第三节:带你详解Java的操作符,控制流程以及数组
程序员文章站
2022-03-31 11:40:09
前言 大家好,给大家带来 的概述,希望你们喜欢 操作符 算数操作符 一般的 +,-, ,/,还有两个自增 自减 ,以及一个取模 % 操作符。 这里的操作算法,一定要掌握 好强制类型转换和自动类型转换。 理解%取模 取模就是在数学中的求余,输出的结果就是余数的多少 理解自增 自减 ++ , i++ 等 ......
前言
大家好,给大家带来带你详解Java的操作符,控制流程以及数组
的概述,希望你们喜欢
操作符
算数操作符
一般的 +,-,*,/,还有两个自增 自减 ,以及一个取模 % 操作符。
这里的操作算法,一定要掌握 好强制类型转换和自动类型转换。
理解%取模
取模就是在数学中的求余,输出的结果就是余数的多少
//可以亲自试试效果,输出为1 public class Test { public static void main(String[] args) { int i = 3; int j = 2; int z = i % j; System.out.println(z); } }
理解自增 自减
++ -- , i++ 等价于 i = i+1 ; i-- 等价于 i = i-1 ; i++ 的理解为 先取值,再运算; ++i 的理解为 先运算,再取值。
//示例代码理解 public class Test { public static void main(String[] args) { int i = 2; System.out.println(i++); //先取值,再运算,那么打印的值,就是先取值,为i=2; //如果再次打印i的值 System.out.println(i); //输出i=3; } }
//示例代码理解 public class Test { public static void main(String[] args) { int j = 2; System.out.println(++j); //先运算,再取值,那么打印的值,就是先运算,++j,那么j=3,打印结果为3; //如果再次打印i的值 System.out.println(j); //输出j=3; } }
关系操作符
- 关系操作符:> 大于 ; >= 大于或等于 ;< 小于 ;<= 小于或等于 ;== 是否相等 ;!= 是否不等
逻辑运算符
- 逻辑运算符:&为长路与, &&为短路与;| 为长路或,|| 为短路或;!为取反;^ 为异或
长路和短路的区别:
- 长路: 两侧,都会被运算
- 短路: 只要第一个是false,那么第二个就不进行运算(短路只要第一个通过,那么第二个就不进行运算)
什么是异或:
口诀:不同为true,相同为false
位操作符
遵循规则:0看做是false,1看做是true.
&:参与运算的两个数,若相应位数的值都为1,则该位结果值为1,否则为0。
(相同为1(前提两个都为1,没有0的情况),不同为0)
|:参与运算的两个数,若相应位数中,只要有一个1,结果就为1。
(有1为1,没1为0)
^:参与运算的两个数,若相应位数中,相同则结果为0,否则为1。
(相同为0(可以两个数为1,结果为0;可以两个数为0,结果为0),不同为1)
~ :表示把每个二进制位的“1”换成“0”,把“0”换成“1”。补充原码、补码、反码的一点知识:
1.正数的反码、补码都与原码一样
2.负数的反码、补码与原码不同。
左移 右移
public class Test { public static void main(String[] args){ int i = 12; System.out.println(i<<1); //代表乘2,结果为24 System.out.println(i>>1);//同理,举一反三,结果可得6 } }
三元运算符
格式:表达式 ? 值1 : 值2
如果表达式为 true,那么结果返回值1;否则返回值2。
控制流程
if语句的格式:
if(表达式1){ 表达式2; }
if else 语句的格式:
if(表达式1){ 表达式2; }else{ 表达式3; }
switch语句格式:
switch (mon) { case 1: case 2: case 3: System.out.println(mon + "月是春天"); break; case 4: case 5: case 6: System.out.println(mon + "月是夏天"); break; case 7: case 8: case 9: System.out.println(mon + "月是秋天"); break; case 10: case 11: case 12: System.out.println(mon + "月是冬天"); break; default: System.out.println("一年有12个月"); }
while和do-while循环语句
while为true时,继续执行;do-while中条件为true时,继续执行,至少会执行一次。
for语句格式:
for(int i=0;i<10;i++){ 表达式语句; }
continue和break
- continue 为继续下一次循环
- break 为结束整个循环
数组
- 数组是具有相同类型数据的集合
声明一个数组int[] a
;创建数组的长度int[] a = new int[5]
;给数组赋值int[] a = new int[]{1,2,3,45,5};
或int[] a = {2,4,24,5,7,66,55,1,2,3,4};
数组的选择排序
//这种就是排序算法,比如有6个人,第一轮要进行5次比较 //第一轮 for(int index=1;index<arr.length;index++) { if(arr[0]>arr[index]) { int temp = arr[0]; arr[0] = arr[index]; arr[index] = temp; } } print(arr); //第二轮 for(int index=2;index<arr.length;index++) { if(arr[1]>arr[index]) { int temp = arr[1]; arr[1] = arr[index]; arr[index] = temp; } } print(arr); //第三轮 for(int index=3;index<arr.length;index++) { if(arr[2]>arr[index]) { int temp = arr[2]; arr[2] = arr[index]; arr[index] = temp; } } print(arr); //第四轮 for(int index=4;index<arr.length;index++) { if(arr[3]>arr[index]) { int temp = arr[3]; arr[3] = arr[index]; arr[index] = temp; } } print(arr); //第五轮 for(int index=5;index<arr.length;index++) { if(arr[4]>arr[index]) { int temp = arr[4]; arr[3] = arr[index]; arr[index] = temp; } } print(arr); //第六轮没有,我们arr.length=6举例 //int index = 6;index<arr.length; false public static void selectionSort(int[] arr) { for(int count=1;count<arr.length;count++) { for(int index=count;index<arr.length;index++) { if(arr[count-1]>arr[index]) { int temp = arr[count-1]; arr[count-1] = arr[index]; arr[index] = temp; } } }
数组的冒泡排序
public class Demo{ public static void main(String[] args){ int[] nums = { 3,1,7,5,8,9,23,45}; for(int i = 0; i< nums.length-1;i++){ for(int j = 0;j<nums.length-1-i;j++){ if(nums[j]>nums[j+1]){ int temp = nums[j]; nums[j] = nums [j+1]; nums[j+1] = temp; } } for(int j = 0; j<nums.length;j++){ Systm.out.println(nums[j]); } }
数组的打印
//使用for int[] i = { 2,3,4,5,6 }; for(int each : i){ System.out.println(each); }
二维数组的表达
int a[][] = new int[][]{ {1,2,3}, {4,5,6}, {7,8,9} };
总结
- 本文讲了带你详解Java的操作符,控制流程以及数组,如果您还有更好地理解,欢迎沟通
- 定位:分享
Android
&Java
知识点,有兴趣可以继续关注