JavaSE基础笔记三

四.流程控制

分支结构:

1.条件判断:

①if(条件表达式){ }

②if(条件表达式){

  //执行语句1;

  }else{

  //执行语句2;

  }

 ③if(条件表达式1){

  //执行语句1;

  }else if(条件表达式2){

  //执行语句2;

  }...

  }else{

  // 执行语句;

  }


注意:

1.一旦满足某个条件表达式,则进入其执行语句执行,执行完毕,跳出当前的条件判断结构,不会执行其以下的条件结构语句。

2.如果诸多个条件表达式之间为“互斥”关系,多个结构可以上下调换顺序

  如果诸多个条件表达式之间为“包含”关系,要求条件表达式范围小的写在范围大的上面。


2.选择结构

switch(变量){

case 值1:

case 值2:

//break;

...

default:

break;

}

注意:

1.变量可为以下数据类型:byte short int char 枚举 String

2.case后只能填写变量的值,不能写范围

3.default;是可以省略的,并且其位置也是灵活的,但通常放在case语句之后

4.一旦满足某一个case语句,则进入执行其操作,直至遇到break或者程序终止

5.某些情况下,若要判断的语句的条件满足switch变量的数据类型,并且值不多的情况下,建议选择swith-case,除此之外,选择if-else


循环结构


1.格式:

①初始化条件

②循环条件

③迭代条件

④循环体


for(①;②;③){

}


while(②){

}


do{

}while(②);


注意:1.不同的循环之间可以相互转换

2.while和do-while的区别:do-while程序至少会执行一次


2.嵌套循环:循环结构中还可以声明循环。让内层循环结构整体充当外层循环的循环体,若外层循环执行mci,内层循环执行n次,整个程序执行m*n次。


题目:

for(int i = 0;i<3;i++){

for(int j = 0;j<6;j++){

System.out.print("*");

}

System.out.println();

}

外层控制行数,内层控制列数


例题:1.九九乘法表 2.输出100以内的质数


3.无限循环

for(;;){

...

if(){

break;

}

}

或者

while(ture)

...

if(){

break;

}

...

}

往往我们在无限循环结构内部提供循环的终止条件,使用break关键字。否则,此循环将无限制的执行下去,造成死循环,这是我们要避免的。


break & continue关键字


break:

使用在swith-case结构或者循环结构中

在循环结构中,一旦执行到break,就跳出当前循环


continue:

使用在循环结构中

一旦执行到continue,就跳出当次循环


for(int i = 1;i <= 10;i++){

if(i % 4 == 0){

//break;  123

continue;//123567910

}

System.out.println(i);

}

在嵌套循环中,使用带标签的break和continue。

lable:for(int i = 1;i < 5;i++){

for(int j = 1;j <= 10;i++){

if(i % 4 == 0){

//break able;  

       continue lable;

}

System.out.println(j);

}

System.out.println();

}


五.数组


1.数组:相同数据类型的数据的集合。

数组的使用:

1.数组的初始化

      int[] score1 = new int[]{1,2,3};//静态初始化:在声明并初始化数组与给数组相应的元素赋值操作同时进行。

      int[] score2 = new int[3];//动态初始化:在声明并初始化数组与给数组相应的元素赋值操作分开进行。

      score2[0] = 1;

      score2[1] = 2;

      score2[2] = 3;

注意:不管是静态还是动态初始化数组,一定要在创建的时候,就指明数组的长度


2.如何引用数组元素:通过数组的下角标的方式,下角标从0开始,到n-1结束,n为数组长度。

3.数组的长度:通过数组的属性length来调用

4.如何遍历数组:

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

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

}

5.关于数组元素的默认初始化值

1) byte short int lang 默认 0 

2)float  doule 默认 0.0

3)char 默认 空格

4)boolean 默认 false

5)引用变量 默认 null


二维数组


1.声明并初始化


①int[][] i = new int[4][3];

②int[][] j = new int[4][];

   j[0] = new int[2];

   ...

   j[3] = new int[2];

③int[][] arr = new int [][]{(1,2,3)(4,5)(6)};


2.如何来引用二维数组的元素:arr[1][0] = 12;


3二维数组的长度:arr.length;


4.遍历二维数组:

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

    for(int j = 0;j<arr[i].length;j++){

        System.out.print(arr[i][j] + "\t");

    }

    System.out.println();

}


数组常见异常


1.数组下标越界的异常:java.lang.ArrayIndexOutOfBoundsException

2.空指针的异常:NullPointerException

数组常见算法问题

1.求数组元素的最大值、最小值、和、平均数

2.数组的复制和反转

复制:

int[] arr1;

int[] arr2;

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

arr2 = new int[arr1.length];

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

    arr2[i] = arr1[i];

}

反转:

for(int i = 0;i < arr.length/2;i++){

    int temp = arr[i];

    arr[i] = arr[arr.length-1-i];

    arr[arr.length-1-i]; = temp;

}


for(int x = 0,y< = arr.length-1;x < y;x++,y--){

    int temp =arr[x];

    arr[x] = arr[y];

    arr[y] = temp;

}


拓展:String str = "abcdefg";


数组的排序:

插入排序

直接插入排序、折半插入排序、Shell排序

交换排序

冒泡排序、快速排序(分区交换排序)

选择排序

简单选择排序、堆排序

归并排序

基数排序



冒泡排序使数组元素从小到大排序:

for(int i = 0;i < arr.length-1;i++){

    for(int j = 0;j < arr.length - 1 -i;j++){

        if(arr[j] > arr[j +1]){

            int temp = arr[j];

            arr[j] = arr[j + 1];

            arr[j + 1] = temp;

        }    

    }

}

使用直接选择排序使数组元素从小到大排序:

for(int i = 0;i < arr.length-1;i++){

    int t = i;

    for(int j = i+1;j < arr.length;j++){

        if(arr[t] > arr[j]){

            t = j;

        }

    }

    if(t! = i){

        int temp = arr[t];

        arr[t] = arr[i];

        arr[i] = temp;

    }

}


Arrays工具类:Arrays.sort(arr);


本文出自 “阿成的博客” 博客,转载请与作者联系!

你可能感兴趣的:(表达式,default)