美文网首页Java开发工程师V程序猿开发笔记程序媛开发笔记
第三节:带你详解Java的操作符,控制流程以及数组

第三节:带你详解Java的操作符,控制流程以及数组

作者: 魔王哪吒 | 来源:发表于2018-03-28 13:51 被阅读5次

    前言

    大家好,我是 Vic,今天给大家带来带你详解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知识点,有兴趣可以继续关注

    相关文章

      网友评论

        本文标题:第三节:带你详解Java的操作符,控制流程以及数组

        本文链接:https://www.haomeiwen.com/subject/nueycftx.html