• Java基础知识(下)


    ---------------------- QQ:371524846 期待与您交流! ----------------------

    一、流程控制

      1 顺序结构,(从左到右,从上到下的运行结构)
      2 选择结构,(条件语句:if , switch)
      3 循环结构,(for循环【一般都用】,while【一般常用】,do while【一般不用】)

      2.1 if...else 结构 简写格式: 变量 = (条件表达式)?表达式1:表达式2;
        三元运算符:
        好处是简化if...else代码;但是因为是运算符,所以必须要有一个结果。
      2.2 switch语句特点:
        a. switch语句选择的类型只有四种:byte, short, int,char.
        b. case 之间与default没有顺序。先执行第一个case,没有匹配的case执行default。
        c. 结束switch语句的两种情况:遇到break,执行switch语句结束。
        d. 如果匹配的case或者default没有对应的break,那么程序会继续向下执行,运行可以执行的语句,直接遇到break或者switch结尾结束。
        e. 什么时候使用switch?
         要比对的值为整型;
         比对的值是有限的值。
         要比对的值个数太多,就不要再使用switch了。
          default 可以放到任何位置!只有所有case都不匹配时,才使用default作为入口点。
      3.1 循环结构:while 、do while 和 for
        (1)while: 先判断条件,只有条件满足才执行循环体。格式如下:
          While(条件表达式)
          {
            循环体 执行语句;
          }
        (2)do while:先执行循环体,在判断条件,条件满足,再继续执行循环体。
          也就是 do while 无论条件是否满足,循环体至少执行一次。格式如下:
          do
          {
            循环体 执行语句;
          }While(条件表达式);
          
        (3)for 语句 格式如下:
          for(初始化表达式;循环条件表达式;循环后的操作表达式)
          {
            执行语句;
          }
        特点:当多表达式出现时,可以用“,”隔开;
        对于for循环来说,不写条件表达式,默认的就是true。
        eg:
          for(int i = 1; i <= 10; i++)   //i是局部变量,出了这个块就死亡
          {
            int j = 1;
          }
        注:
          无限循环的最简单表现形式:
          for(;;){} while(true){}
        不是规律的规律:
          尖朝上,可以改变条件,让条件随着外循环变化;
          尖朝下,可以改变初始化值,让初始化值随着外循环变化。
        other:其他流程控制语句:
        break(跳出当前所在的循环,标号除外), continue(继续)
        break语句:应用范围:选择结构和循环结构。
        continue语句:应用于循环结构。
        :a, 这两个语句离开了应用范围,存在是没有意义的。
          b, 这个两个语句单独存在,下面都不可以有语句,因为执行不到。
          c, continue语句是结束本次循环继续下次循环。
          d,标号的出现,可以让这两个语句作用于指定的范围。

    二、函数

      1. 函数的定义:函数就是定义在类中的具有特定功能的一段独立小程序。也称为方法。

      2. 函数定义的格式:
        修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参数2,..)
        {
          执行语句;
          return 返回值; //可以省略
        }
        返回值类型:函数运行后的结果的数据类型。
        参数类型:是形式参数的数据类型。
        形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
        实际参数:传递给形式参数的具体数值。
        return: 用于结束函数。
        返回值:该值会返回给调用者。

      3.如何定义一个函数呢?
        (1)既然函数是一个独立的功能,那么先明确该功能的运算结果是什么;
          因为这是在明确函数的返回值类型。
        (2)再明确在定义该功能的过程中是否需求未知的内容参与运算;
          因为这是在明确函数的参数列表(参数的类型和参数的个数)。

      4. 函数的重载(overload) :
        概念:在同一个类中,允许存在一个以上的同名函数,只要他们的参数个数或者参数类型不同即可。
        重载的特点:与返回值类型无关,只看参数列表。
        重载的好处:方便与阅读,优化了程序设计。
       什么时候用重载?
        当定义的功能相同,但参与运算的未知内容不同。
        那么,这时就定义一个函数名称以表示其功能,方便阅读,而通过参数列表的不同来区分多个同名函数。
    eg:

     1     public class FunctionOverload {
     2         public static void main(String[] args) {
     3             add(3,6);
     4             add(2,3,6);
     5         }
     6         //获取两个整数的和
     7         public static int add(int x ,int y){
     8             return x+y;
     9         }
    10         //获取三个整数的和
    11         public static int add(int x ,int y,int z){
    12             return x+y+z;
    13         }
    14     }

    三、数组

      1.数组的定义:
        概念: 同一个类型数据的集合。其实数组就是一个容器。
        数组是引用类型,它是我们真正学习引用类型的开始。

        数组的好处:数组有下标(角标),用来访问数组中的元素。可以自动给数组中的元素从0开始编号,到"长度-1"结束。方便操作这些元素。最大的好处(与循环配

        合使用)。

      2.数组定义的格式
        格式1:
        元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
        eg: int[] arr = new int[5];
        格式2:
        元素类型[] 数组名 = new 元素类型[]{元素, 元素,......};
        eg: int[] arr = new int[]{3,5,1,7};
        int[] arr ={3,5,1,7};

      3.数组的排序:
        选择排序: 内循环结束一次,最值出现在头角标位置上。
        冒泡排序:相邻的两个元素进行比较,如果符合条件就换位。
        第一圈:最值出现最后一位。
        注意:不能让角标越界
        位置置换抽取功能:无论什么排序,都需要对满足条件的元素进行位置置换,所以可以把这部分相同的代码抽取出来,单独封装成一个函数。
        折半查找(二分搜索法):提高效率,但是必须要保证该数组是有序的数组。

    eg:

     1 classSortArray{
     2       public static void main(String[] args) {
     3           int[] arr = { 9, 8, 3, 5, 2 };
     4           System.out.print("排序前:");             
     5           printArray(arr);                        //打印原数组
     6           sortArray(arr);                           //调用排序方法
     7           System.out.print("排序后:");             
     8           printArray(arr);                        // 打印排序后的数组
     9       }
    10       public static void printArray(int[] arr) {             //定义打印数组方法
    11           System.out.print("[");
    12           for (int x = 0; x < arr.length; x++) {
    13               if (x != arr.length - 1)
    14                   System.out.print(arr[x] + ", ");
    15               else
    16                   System.out.println(arr[x] + "]");
    17           }
    18       }
    19     public static void bubbleArray(int[] arr) {     //选择排序
    20         for (int x = 0; x < arr.length - 1; x++) {
    21               for (int y = x+1; y < arr.length; y++) {
    22                   if (arr[x] > arr[y]) {
    23                       int temp = arr[x];
    24                       arr[x] = arr[y];
    25                       arr[y] = temp;
    26                   }
    27               }
    28           }
    29     }
    30       public static void sortArray(int[] arr) {        // 定义对数组排序的方法(冒泡排序)
    31           for (int x = 0; x < arr.length - 1; x++) {
    32               for (int y = 0; y < arr.length - x - 1; y++) {
    33                   if (arr[y] > arr[y + 1]) {
    34                       int temp = arr[y];
    35                       arr[y] = arr[y + 1];
    36                       arr[y + 1] = temp;
    37                   }
    38               }
    39           }
    40       }
    41   }



      4.二维数组:
        定义二维数组的样式:
          int[][] arr=new int[10][20];
          int[][] arr=new int[3][];
          int[][] arr=new int[][]{{},{},{}};

          int arr[][]=… (平时不用,考别人用)
          int[] arr[]=… (平时不用,考别人用)
          int[] a={1,2,3};
          int[] b={4,5};
          int[][] ab={a,b};

    ---------------------- QQ:371524846 期待与您交流! ----------------------

  • 相关阅读:
    黑马程序员——指针的应用
    黑马程序员——C语言基础常量、运算符、函数
    黑马程序员——数组
    黑马程序员——循环结构for,while,do..while
    webView去掉右侧导航条
    使用Eclipse构建Maven的SpringMVC项目
    win7 自动登录
    eclipse 自动提示
    apache+php+mysql 环境配置
    KMP子串查找算法
  • 原文地址:https://www.cnblogs.com/Lt-Java13/p/3260736.html
Copyright © 2020-2023  润新知