Java语言中学习数组运算符流程控制的一些理解

Posted K白心

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java语言中学习数组运算符流程控制的一些理解相关的知识,希望对你有一定的参考价值。

一、数组

  1、数组的概念及作用

   数组是相同数据类型的元素的集合;

     数组本身是引用数据类型,即对象。但是数组可以存储基本数据类型,也可以存储引用数据类型。

  例如:

    int [] a = new int [] {1,2,3,4,5,6,};

    String [] s = new String [] {"小兔","小小兔","小小小兔",} ;

    Employee [] e = Employee [10];(Employee是自定义类)。

  2、数组的声明

     数组的声明有两种方式:

    数据类型 [] 数组名字     例如:int [] a;

    数据类型 数组名字 []     例如:int a [];

  注:在JAVA语言中两种声明方法没有任何区别,但是建议大家使用第一种,避免混淆a的数据类型。

    数组在声明后还只是一个空指针,不能使用,要使用必须创建。

  3、数组的创建

     数组的创建有三种方式:

   1)//声明数组的同时,根据制定的长度分配内存,但数组中元素值都为默认的初始化值

      char [] chAry = new char [10];

     2)//声明数组并分配内存,同时将其初始化

      int [] ary1 = new int [] {1,2,3,4,5};

   3) //与前一种方式相同,仅仅只是语法相对简略

      int [] ary2 = {1,2,3,4,5};

     从另一角度,数组创建可以分为动态和静态两种

   1)动态创建数组(没有为元素赋值,可以结合for循环进行赋值)

     char [] chAry = new char [10];

      2)静态创建数组,在创建的时候,即为每个元素赋初值

     int [] ary1 = new int [] {1,2,3,4,5};

     数组的长度:length属性

       int [] b1 =new int [] {1,2,3,4,5,6,7};

       System.out.println(b1.length);

  注:数组的长度是属性,String的长度是length()

    创建数组的时候必须指定数组长度,而且一经定义则不允许改变。

    数组长度虽然是7,但是在内存中实际給8个位置,另一个存储7.

     数组之间的赋值

    在Java中,语法上可以将数组的值赋给另一个数组,但实际得到的效果是两个数组引用指向同一块内存。

     int [] ary1 = {1,2,3,4,5,};

       int [] ary2;

     ary2 = ary1:

     上面两个数组的引用指向同一块内存。  

public class ArrayDemo {

  public static void main(String[] args) {

    int[] ary1 = {2, 4, 6, 8, 10}; //声明并初始化数组1

    int[] ary2; //声明数组2 ary2 = ary1; //将数组1赋值给数组2

    ary2[3] = 1024; //通过数组2修改其中一个元素的值

    //打印出数组1中的元素 System.out.println("数组1中的元素:");

    for (int i = 0; i < ary1.length; i++) {

      System.out.println(ary1[i]);

    }

    //打印出数组2中的元素 System.out.println("数组2中的元素:");

    for (int i = 0; i < ary2.length; i++) {

      System.out.println(ary2[i]);

    }

  }  

}

   运行结果:数组1中的元素 2 4 6   for循环输出为1024

        数组2中的元素 2 4 6   for循环输出为1024

 

二、运算符

     按照功能分,Java中的运算符可以分为四类

    算术运算符

    位运算符

    比较运算符

    逻辑运算符

     除了== 及 !=、+外,其他运算符都是针对基本数据类型进行运算,==及!=可以对基本数据类型及引用类型进行运算,+还可以对字符串进行连接操作。

  1、算术运算符

    单目:+(取正) -(取负)  ++(自增1) --(自减1)

    双目:+ - * / %(取余)(+还可以连接字符串

    三目:a > b ? ture:false

       说明:当a大于b的时候,为true(也就是冒号之前的值),否则为false;这整个运算符包括一个关系运算符(可以是“>”"<""!="等等),一个“?”,一个“:”,冒号前后需要有两个表达式或者是值或者是对象。

  2、位运算符

    位运算符:(先转化成二进制再进行运算)

      与(&)、非(~)、或(|)、异或(^)

     & 全部是1,运算结果是1,其他的都是0;

      ~ 按位取反+1,加1后取反(取负);

     | 只要有一个是1,结果就是1;

     ^ 相同的结果是0,不同的结果是1;

      移位运算符:<<、    >>(有符号右移) 

      左移1位相当于乘以2,右移1位相当于除以2,比乘除运算效率更高

     例如:

      int a = 8, c;

      c = a >> 2;

      原来的: (8的二进制值是)   0000 1000 

      移动后:  (c的值为2)         0000 0010

  3、比较运算符

    ==(等于号) ,<(小于号),>(大于号),<=(小于等号),>=(大于等号),!=(不等号);

    ==与!=比较基本数据类型是比较值,比较引用类型是虚地址;

    除了==  !=外,都只能比较基本数据类型;

     注:比较运算符的返回值为ture或false。

  4、逻辑运算符

    用于连接两个boolean类型的表达式

    && (双与) 、|| (双或) 、&(与)、|或)、^(异或)、!(非运算)

      注意事项:

     1)&&与&的运算结果是相同的,对于&而言无论左边为什么值,右边都参与运算;

      对于&&来说,只要左边为false右边就不再运算,直接返回false。

        2)||与|的运算结果是相同的,对于|而言无论左边为什么值,右边都参与运算;

      对于||来说,只要左边为true右边就不再运算,直接返回true。

        3)&&和||可以理解为物理上的短路,实际中多用&&及||。

三、Java中的流程控制

  顺序流程

  分支流程

  循环流程

  1、顺序流程 

    输入-----运算处理-----输出

  2、分支流程

    1)条件语句if....

         条件表达式可以是任何一种逻辑表达式; 

         如果表达式值为true,则执行花括号的内容后,再执行后面的语句;

      如果表达的值为false,则直接执行后面的语句;

         如果,大括号只有一条语句,则可以省略大括号(推荐不省略);

     2)条件语句 if..... else.....

      语法格式—if.....case....

       if(表达式){

        执行语句块1

       }else{

        执行语句块2

       }

       如果表达式值为false,则执行else的语句块;

     3)条件语句 — switch....case   (case的取值是具体的一个值,不能有重复的,是常量

      语法格式

      switch(表达式){

        case取值1:语句块1

        ....

        case取值n:语句块n

        default:语句块n+1

      }  

       表达式的值只可以接受int、byte、char、short型、枚举,JDK1.6以后String也可以,不接受其他类型的值,不允许有重复的case取值;

       switch一旦碰到第一次case匹配,程序就会跳转到这个标签位置;

       开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配,直到碰到break语句为止;

  3、循环流程

     1)循环语句— while(循环体在whlie中

    while(条件表达式){

      执行语句块;

    }

     2)循环语句 — do…while  至少会执行一次循环(循环体在do中

    do{

     执行语句块;

    }whlie(条件表达式);

     3)循环语句 — for

    for(初始化表达式;循环条件表达式;循环后的操作表达式){

      执行语句块;

    }

  4、循环的中断语句

    中断语句

    多重循环中可以使用标号,指定中断的具体循环

      在使用循环语句时,只有循环条件表达式的值为false时,才能结束循环。有时,我们想提前中断循环,要实现这一点,只需要在循环语句块中添加break或continue语句

    1)中断语句 — break

       break语句用于终止某个语句块的执行。用在循环语句体中,可以强行退出循环(整个循环)。

       "break;"语句:可以出现在while、do…while、for、switch语句体中。

       "break label”语句 :可以出现在任何语句体中。多数还是使用在循环中。

    2)中断语句 — continue

       continue语句用在循环语句体中,用于终止某次循环过程,跳过循环体(跳出本次循环)中continue语句下未执行的循环,开始下一次循环过程。

       "continue;” 语句:只能出现在循环语句while、do…while、for中。

    

       

以上是关于Java语言中学习数组运算符流程控制的一些理解的主要内容,如果未能解决你的问题,请参考以下文章

Java 中的运算符和流程控制相关内容的理解

Scala基础

感受第一周学习

大一C语言学习笔记---自省篇--流程控制;break,continue,return间的异同;数组应用到循环语句中需要注意的问题;++i 和 i++的异同等。

Go语言基础:运算符_流程控制循环_数组_切片

Go语言基础:运算符_流程控制循环_数组_切片