java基础语法2

一:运算符和表达式

1.表达式

表达式是由常量变量对象方法调用和操作符组成的式子。根据运算符的不同,表达式相应的分为下面几种:算数表达式、关系表达式、逻辑表达式、赋值表达式,这些都属于数值表达式。

2.运算符

 

•算术运算符   进行基本的算数运算,如加法、减法、乘法、除法,在字符串中,‘+’可以作为连接符

n++ :先执行一次操作,再对n进行加1运算

++n :先对n进行加1运算,再执行一次操作

•赋值运算符     =

               格式 :变量 = 表达式;从右往左进行运算

•关系运算符 :判断数据的大小,比较的结果是布尔值

'A' > 'B' 的结果是false,这时比较的是两个字符的ASCII值

•逻辑运算符: &与 、|或、!非 , 用来连接一个或多个条件,判断这些条件是否成立,其运算数都是布尔类型

&& 与 || :又叫做短路运算符,如果第一个表达式的值就可以决定表达式最后的结果,预算符右边的表达式就不需要进行运算了

•条件运算符

格式:布尔表达式?表达式1: 表达式2

布尔表达式的值为true时,返回表达式1的值,否则返回表达式2的值

•位运算符

&(与)、|(或)、 ^(异或)、<<(左移)、>>(右移)、>>>(无符号右移)、~(取反) 
注意:位运算针对的是整数,运算的是数据的补码 
可以利用&来判断是否是奇偶数。

运算符的优先级:

 

二:流程控制

顺序结构,选择结构,还有循环结构三种

1.顺序结构

顾名思义顺序结构就是程序从上到下一条一条的按照顺序进行执行,没有语句的判断和跳转,直到程序结束。

2.选择结构

主要分为if语句和switch语句两种类型

If语句又可以分为以下几种:

① If(表达式){语句};

② If(表达式){语句1};else{ 语句2};

③ If(表达式1){语句1};

else if(表达式2){语句2};

else if(表达式3){语句3};

...........

...........

else {语句n};

④ 嵌套if语句:

If(表达式1){

      If(表达式2){语句1};

      else {语句2};

      }

else{

      If(表达式3){语句3};

      else{语句4};

        }

注意:在使用时if后面必须是一条语句,如果是多条语句,必须使用大括号将其组成复合语句。否则编译的时候可能会出现错误。

switch选择结构的格式如下:

switch(表达式){

 case 常量表达式1: 语句1;

 case 常量表达式2: 语句2;

 .............

 case 常量表达式n: 语句n;

 default: 语句n+1;

}

注:

① default语句是可选的,他接受除了上面接受的值。

② case后面只能跟一条语句,如果有多条语句必须将其写成复合语句的形式。

③  switch判断语句只可以接受byte,short,char,int型,不能接受其他的类型 。

④ 一旦第一次遇到与case匹配的语句,就直接执行这条语句以及后面的所有语句。

⑤  case语句遇到break就会跳出,所以通常与break配合使用。

3.循环结构

for循环,while循环语句,do-while循环。

(1)for循环语句:

 for(表达式1;表达式2;表达式3){循环体语句};

注:表达式1一般都是变量赋初值,表达式2是判断语句,表达式3是控制变量增减的语句。执行过程是先执行表达式1,然后判断表达式2,表达式2成立的话再执行循环体语句,然后判断表达式3.直到表达式2条件不成立时跳出循环。循环体语句必须是一条语句,如果是多条语句必须用{ }括起来,组成符合语句。

(2)while循环语句格式如下:

while(表达式){

      循环语句;

}

while语句一般是在不知道循环次数的情况下使用,执行过程是先判断表达式,当表达式成立时再执行循环体语句,如果表达式不成立,则直接跳出循环。一般变量赋值在while语句之前给出。

(3)do-whlle循环语句格式如下:

do{

   语句;

  }while(表达式);

do-while语句无论表达式是否成立都会执行一次,也就是先执行后判断。

总结:当已知循环的次数时优先选择for循环,当循环的次数不知,而且循环条件比较明显时用while循环,当无论循环条件是否成立,循环体语句至少被执行一次时,选择do-while。

4、break与continue关键字:

(1)break关键字不仅可以用于switch语句,还可以用于循环语句,当满足某个条件时直接跳出循环。

(2)continue关键字可以用于循环语句,经常与if配套使用,当满足if条件时,就不再执行continue后面的语句,而是进入下一次的循环。

三:数组

1.数组定义:存储固定大小的同类型元素

数据类型[] 数组名 = new 数据类型[元素个数或数组长度];

例如:int[]x=new int[123]//创建一个长度为123的int类型的数组 ,第一个变量的名称为x[0],第二个变量的名称为x[1]

创建初始化和操纵数组


package com.number1.com;

public class TestArray1 {
    public static void main(String[] args){
        double[] x={1.1,2.1,3.1,4.1,5.1};
        //打印所有的数组元素
        for (int i=0;i<x.length;i++){
            System.out.println(x[i]+" ");
        }
        //计算所有的数组元素和
        double sum=0;
        for (int i=0;i<x.length;i++){
            sum+=x[i];
            System.out.println("总和为"+sum);
        }
        //查找最大元素
        double max=x[0];
        for(int i=1;i<x.length;i++){
            if (max < x[i])
                max=x[i];
        }
        System.out.println("最大值为"+max);
    }
}
1.1 
2.1 
3.1 
4.1 
5.1 
总和为1.1
总和为3.2
总和为6.300000000000001
总和为10.4
总和为15.5
最大值为5.1

Process finished with exit code 0

*数组作为函数的参数传递给方法

*数组作为函数的返回值

*多维数组:数组的数组

String str[][]=new String[3][5]

多维数组的动态初始化:type[][] typeName=new type[typeLength1][typeLength2]

Arrays类

java.util.Arrays类能方便的操纵数组,他提供的方法都是静态的,

功能:

具有以下功能:

  • 给数组赋值:通过 fill 方法。
  • 对数组排序:通过 sort 方法,按升序。
  • 比较数组:通过 equals 方法比较数组中元素值是否相等。
  • 查找数组元素:通过 binarySearch 方法能对排序好的数组进行二分查找法操作。
    序号方法和说明
    1 public static int binarySearch(Object[] a, Object key)
    用二分查找算法在给定数组中搜索给定值的对象(Byte,Int,double等)。数组在调用前必须排序好的。如果查找值包含在数组中,则返回搜索键的索引;否则返回 (-(插入点) - 1)。
    2 public static boolean equals(long[] a, long[] a2)
    如果两个指定的 long 型数组彼此相等,则返回 true。如果两个数组包含相同数量的元素,并且两个数组中的所有相应元素对都是相等的,则认为这两个数组是相等的。换句话说,如果两个数组以相同顺序包含相同的元素,则两个数组是相等的。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。
    3 public static void fill(int[] a, int val)
    将指定的 int 值分配给指定 int 型数组指定范围中的每个元素。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。
    4 public static void sort(Object[] a)
    对指定对象数组根据其元素的自然顺序进行升序排列。同样的方法适用于所有的其他基本数据类型(Byte,short,Int等)。

 

posted @ 2019-05-02 19:06  故俗  阅读(265)  评论(0编辑  收藏  举报