Java学习笔记(五)

目录

一、控制结构

1.1 顺序控制

1.2 分支控制

(一)单分支

(二)双分支

(三)多分支

(四)嵌套分支

(五)switch分支

1.3 循环控制

(一)for 循环控制

(二)while 循环控制

(三)do…while 循环控制

(四)多重循环控制

1.4 特殊(break、continue、return)

(一)break

(二)continue

(三)return

 二、排序

2.1 排序的分类

2.2 冒泡排序


一、控制结构

1.1 顺序控制

程序从上到下逐行执行,中间没有任何判断和跳转。

1.2 分支控制

(一)单分支

  • 基本语法
if(条件表达式){

        执行代码块;

}
  • 当条件表达式为ture 时,就会执行 { } 的代码。如果为false,就不执行。
  • 特别说明,如果 { } 中只有一条语句,则可以不用 { } ,建议写上 { }

(二)双分支

  • 基本语法

if(条件表达式){
    执行代码块1;
}
else{
    执行代码块2;
}
  • 当条件表达式成立,即执行代码块1,否则执行代码块2。如果执行代码块,只
    有一条语句,则 { } 可以省略,否则,不能省略

(三)多分支

  • 基本语法

if (条件表达式1){
    执行代码块1;
}
else if (条件表达式2){
    执行代码块2;
}
……
else{
    执行代码块n;
}
  • 当条件表达式1成立时,即执行代码块1,如果表达式1不成立,才去判断表达式2是否成立,如果表达式2成立,就执行代码块2……以此类推,如果所有的表达式都不成立则执行 else 的代码块,注意,只能有一个执行入口。

(四)嵌套分支

在一个分支结构中又完整的嵌套了另个完整的分支结构。里面的分支的结构称为内层分支外面的分支结构称为外层分支。规范:不要超过3层。(可读性不好)

  • 基本语法

if (){
    if (){
        if-else

    }else{
        if-else
    }
}
  • 当条件表达式1成立时,即执行代码块1,如果表达式1不成立,才去判断表达式2是否成立,如果表达式2成立,就执行代码块2……以此类推,如果所有的表达式都不成立则执行 else 的

(五)switch分支

  •  基本语法

switch(表达式){ //表达式是一个具体的值
    case 常量1:
    语句块1;
    break;

    case 常量2:
    语句块2;
    break;
    ...

    case 常量n:
    语句块n;
    break;

    default:
    default 语句块;
    break;
}
  1. switch 关键字,表示swtich分支。
  2. case 常量1:当表达式的值等于常量1,就执行 语句块1
  3. break:表示退出swtich
  4. 如果和 case 常量1 匹配,就执行语句块1,如果没有匹配,就继续匹配 case 常量2
  5. 如果一个都没有匹配上,执行default

注意事项

  1. 表达式数据类型,应和case 后的常量类型一致,或者是可以自动转成可以相互比较的类型,比如输入的是字符,而常量是 int
  2. switch(表达式)中表达式的返回值必须是:(byte,short,int,char,enum,String)
  3. case子句中的值必须是常量,而不能是变量
  4. default子句是可选的,当没有匹配的case时,执行default
  5. break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有写break,程序会顺序执行到switch结尾

1.3 循环控制

(一)for 循环控制

for (循环变量初始化;循环条件;循环变量迭代){
    循环操作;
}
  • for 关键字,表示循环控制
  • for有四要素:(1)循环变量初始化;(2)循环条件;(3)循环操作;(4)循环变量选代
  • 循环操作,这里可以有多条语句,也就是我们要循环执行的代码
  • 如果 循环操作(语句)只有一条语句,可以省略 4,但建议不要省略

(二)while 循环控制

循环变量初始化;
while(循环条件){
    循环体;
    循环变量迭代;
}
  • while也有四要素,只是位置不一样

(三)do…while 循环控制

循环变量初始化;
do{
    循环体;
    循环变量迭代;
}while(循环条件);

do...while是关键字,有四要素,只是位置不一样

(四)多重循环控制

  • 将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for, while, do...while均可
    以作为外层循环和内层循环。[建议一般使用两层,最多不要超过3层。否则,代码的可读
    性很差]
  • 实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为
    false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环
  • 设外层循环次数为m次,内层为n次,则内层循环体实际上需要执行m*n次

1.4 特殊(break、continue、return)

(一)break

当有一个循环但次数不知道,break可以做到——当某个条件满足时,终止循环

  • break语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
lable1:
for (int j=0;j<4;j++){
lable2:
    for (int i=0;i<10;i++){
        if (i==2){
            break lable1;
        }
    }
}
  • break 语句可以指定退出哪层
  • label 是标签
  • break 后指定到哪个label 就退出到哪里
  • 在实际的开发中,尽量不要使用标签
  • 如果没有指定 break,默认退出最近的循环体

(二)continue

  • continue语句用于结束本次循环,继续执行下一次循环
  • continue语句出现在多层嵌套的循环语句体中时,可以通过标签指明要跳过的是哪一层循环,这个和前面的标签的使用的规则一样

(三)return

一般使用在方法,表示跳出所在的方法

 二、排序

排序是将多个数据,依指定的顺序进行排列的过程。


2.1 排序的分类

  1. 内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序。包括(交换式排序法、选择式排序法和插入式排序法)。
  2. 外部排序法:数据量过大,无法全部加载到内存中,需要借助外部存储进行排序。包括(合并排序法和直接合并排序法)。

2.2 冒泡排序

通过对待排序序列从后往前,一次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前往后移,就像水底下的气泡一样逐渐向上冒。

具体代码如下:

import java.util.Arrays;

public class BubbleSort {
    public static void main(String[] args) {
        int[] arr = { 25, 63, 24, 15, 96, 57, 15, 36, 45 };
        int temp = 0;
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - i - 1; j++) {
                if (arr[j] > arr[j + 1]) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
            System.out.println(Arrays.toString(arr));
        }
    }
}

你可能感兴趣的:(学习,笔记,java)