Java語言編程結構(續)

###04.01_Java語言基礎(控制跳轉語句break語句)
* A:break的使用場景
* 只能在switch和循環(while,for,do_while())中 
案例:
class Demo1_Break {
public static void main(String[] args) {
                //break;寫在這報錯,break只能用在循環和switch語句中
for (int x = 1;x <= 10 ;x++ ) {
if (x == 4) {
break; //跳出循環
}
 
System.out.println("x
class Demo4_Return {
public static void main(String[] args) {
for (int i = 1;i <= 10 ;i++ ) {
if (i == 4) {
//break; //停止循環
return; //返回的意思,用來返回方法
}
}
 
System.out.println("循環結束了");
}
}
  • = " + x);
    }
    }
    }


  • ###04.02_Java語言基礎(控制跳轉語句continue語句)
    * A:continue的使用場景
    * 只能在循環中 ,提前結束本次循環(循環體中continue後面的語句將不再執行),繼續進行下一次
    /*
    * A:continue的使用場景
    * 只能在循環中 
    */
    案例:
    class Demo2_Continue {
    public static void main(String[] args) {
    for (int x = 1;x <= 10 ;x++ ) {
    if (x == 4) {
    continue; //終止本次循環,繼續下次循環
    }
     
    System.out.println("x = " + x);
    }
    }
    }

    ###04.03_Java語言基礎(控制跳轉語句標號)
    * 標號:標記某個循環對其控制
    * 標號組成規則:其實就是合法的標識符
    案例:
    class Demo3_Mark { //mark 標記
    public static void main(String[] args) {
    /*outer: for (int i = 1;i <= 10 ;i++ ) { //a就是標號,只要是合法的標識符即可
    System.out.println("i = " + i);
    inner: for (int j = 1;j <= 10 ;j++ ) {
    System.out.println("j = " + j);
    break outer;
    }
    }*/
     
    System.out.println("大家好");
    http://www.heima.com         //這裏http:就是一個標號,而後面的//是java中的註釋,所以相當於給輸出語句做了一個標記,沒有什麼實際的意義
    System.out.println("纔是真的好");
    }
    }


    ###04.04_Java語言基礎(控制調整語句練習)
    * A:練習題
    for(int x=1; x<=10; x++) {
    if(x%3==0) {
    //在此處填寫代碼
    }
    System.out.println(“Java基礎班”);
    }
    我想在控制檯輸出2次:“Java基礎班“
    我想在控制檯輸出7次:“Java基礎班“
    我想在控制檯輸出13次:“Java基礎班“
    案例:
    class Test1 {
    public static void main(String[] args) {
    for(int x=1; x<=10; x++) {
    if(x%3==0) {
    //break; //我想在控制檯輸出2次:“Java基礎班“
    //continue; //我想在控制檯輸出7次:“Java基礎班“
    System.out.println("Java基礎班");//我想在控制檯輸出13次:“Java基礎班“
    }
    System.out.println("Java基礎班");
    }
    }
    }


    ###04.05_Java語言基礎(控制跳轉語句return語句)

    * A:return的作用
    * 返回
    * 其實它的作用不是結束循環的,而是結束方法的。
    * B:案例演示
    * return和break以及continue的區別?
    * return是結束方法
    * break是跳出循環
    * continue是終止本次循環繼續下次循環
    案例:

    ###04.06_Java語言基礎(方法概述和格式說明)
    * A:爲什麼要有方法
    * 提高代碼的複用性   //
    * B:什麼是方法
    * 完成特定功能的代碼塊。 
    * C:方法的格式
    修飾符 返回值類型 方法名(參數類型 參數名1,參數類型 參數名2...) {
    方法體語句;
    return 返回值; 
    * D:方法的格式說明
    * 修飾符:目前就用 public static。後面我們再詳細的講解其他的修飾符。
    * 返回值類型:就是功能結果的數據類型。
    * 方法名:符合命名規則即可。方便我們的調用。
    * 參數:
    * 實際參數:就是實際參與運算的。
    * 形式參數;就是方法定義上的,用於接收實際參數的。
    * 參數類型:就是參數的數據類型
    * 參數名:就是變量名
    * 方法體語句:就是完成功能的代碼。
    * return:結束方法的。
    * 返回值:就是功能的結果,由return帶給調用者。 

    ###04.07_Java語言基礎(方法之求和案例及其調用)
    * A:如何寫一個方法
    * 1,明確返回值類型
    * 2,明確參數列表 
    * B:案例演示
    * 需求:求兩個數據之和的案例
    * C:方法調用圖解

    案例:
    class Demo2_Sum {
    public static void main(String[] args) {
    /*int a = 10;
    int b = 20;
    int sum = a + b;
    System.out.println(sum);
     
    int c = 30;
    int d = 40;
    int sum2 = c + d;
    System.out.println(sum2);*/
     
    int sum = add(10,20);
    System.out.println(sum);
     
    //add(30,40); //有返回值方法的單獨調用,沒有意義
    System.out.println(add(30,40)); //這樣調用是可以,but如果需要用這個結果不推薦這樣調用
     
    //盤子 = 炒菜(地溝油,蘇丹紅,鎘大米,爛白菜);
    }
    public static int add(int a,int b) { //int a = 10,int b = 20
    int sum = a + b;
    return sum; //如果有返回值必須用return語句帶回
    }
     
    /*
    盤子 炒菜(油,調料,米,菜) {
    炒菜的動作
    return 一盤菜;
    }
    */
     
    }


    ###04.08_Java語言基礎(方法的注意事項)
    * A:方法調用(有具體返回值)
    * a:單獨調用,一般來說沒有意義,所以不推薦。
    * b:輸出調用,但是不夠好。因爲我們可能需要針對結果進行進一步的操作。
    * c:賦值調用,推薦方案。
    * B:案例演示
    * a:方法不調用不執行
    * b:方法與方法是平級關係,不能嵌套定義
    * c:方法定義的時候參數之間用逗號隔開
    * d:方法調用的時候不用在傳遞數據類型
    * e:如果方法有明確的返回值,一定要有return帶回一個值

    ###04.09_Java語言基礎(方法的練習)
    * A:案例演示
    * 需求:鍵盤錄入兩個數據,返回兩個數中的較大值
    * B:案例演示
    * 需求:鍵盤錄入兩個數據,比較兩個數是否相等 
    案例:
    import java.util.Scanner;
    class Test1_Method {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in); //創建鍵盤錄入對象
    System.out.println("請輸入第一個整數:");
    int x = sc.nextInt(); //將鍵盤錄入的整數存儲在x中
    System.out.println("請輸入第二個整數:");
    int y = sc.nextInt(); //將鍵盤錄入的整數存儲在y中
     
    //int max = getMax(x,y);
    //System.out.println(max);
     
    boolean b = isEquals(x,y);
    System.out.println(b);
    }
     
    /*
    返回連個整數的較大值
    1,明確返回值類型 int
    2,明確參數列表 int a,int b
    */
    public static int getMax(int a,int b) {
    return a > b ? a : b;
    }
     
    /*
    判斷兩個整數是否相等
    1,明確返回值類型 boolean
    2,明確參數列表 int a,int b
    */
    public static boolean isEquals(int a,int b) { //isEquals 是否相等
    return a == b;
    }
    }

        


    ###04.10_Java語言基礎(方法之輸出星形及其調用)
    * A:案例演示
    * 需求:根據鍵盤錄入的行數和列數,在控制檯輸出星形
    * B:方法調用:(無返回值,void)
    * 單獨調用
    * 輸出調用(錯誤)
    * 賦值調用(錯誤)
    案例:
    import java.util.Scanner;
    class Demo3_Method {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in); //創建鍵盤錄入對象
    System.out.println("請輸入行數:");
    int row = sc.nextInt(); //將鍵盤錄入的行數存儲在row中
    System.out.println("請輸入列數:");
    int column = sc.nextInt(); //將鍵盤錄入的列數存儲在column中
    //System.out.println(print(row,column)); //錯誤: 此處不允許使用 '空' 類型,返回值是void的方法不能輸出調用
    //返回值是void的方法只能單獨調用
    print(row,column);
    }
     
    /*
    在控制檯輸出矩形星形
    1,明確返回值類型,經分析沒有具體的返回值類型,void
    2,明確參數列表int a,int b
    */
     
    public static void print(int a,int b) {
    for (int i = 1;i <= a ;i++ ) { //行數
    for (int j = 1;j <= b ;j++ ) { //列數
    System.out.print("*");
    }
    System.out.println();
    }
     
    //return ; //如果返回值類型是void,return可以省略,即使省略系統也會默認給加上,形式是return;
    }
    }


    ###04.11_Java語言基礎(方法的練習)
    * A:案例演示
    * 需求:根據鍵盤錄入的數據輸出對應的乘法表
    案例:
    import java.util.Scanner;
    class Test2_Method {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in); //創建鍵盤錄入對象
    System.out.println("請錄入一個整數,範圍在1-9之間");
    int num = sc.nextInt(); //將鍵盤錄入的整數存儲在num中
    print99(num);
    }
     
    /*
    打印99乘法表
    1,返回值類型void
    2,參數列表,int a
    */
     
    public static void print99(int a) {
    for (int i = 1;i <= a ;i++ ) { //行數
    for (int j = 1;j <= i ;j++ ) { //列數
    System.out.print(j + "*" + i + "=" + (i * j) + "\t" );
    }
    System.out.println();
    }
    }
    }

    ###04.12_Java語言基礎(方法重載概述和基本使用)
    * A:方法重載概述
    * 求和案例
    * 2個整數
    * 3個整數
    * 4個整數
    * B:方法重載:
    * 在同一個類中,方法名相同,參數列表不同。與返回值類型無關。
    * 參數列表不同:
    * A:參數個數不同
    * B:參數類型不同
    * C:參數的順序不同(算重載,但是在開發中不用)
    案例:
    class Demo4_Overload { //overload重載
    public static void main(String[] args) {
    double sum1 = add(10,20.1);
    System.out.println(sum1);
     
    int sum2 = add(10,20,30);
    System.out.println(sum2);
     
    double sum3 = add(12.3,13);
    System.out.println(sum3);
    }
     
    /*
    求兩個整數的和
    1,返回值類型int
    2,參數列表 int a,int b
    */
     
    public static double add(int a,double b) {
    return a + b;
    }
     
    /*
    求三個整數的和
    1,返回值類型int
    2,參數列表 int a,int b,int c
    */
     
    public static int add(int a,int b,int c) {
    return a + b + c;
    }
     
    /*
    求兩個小數的和
    1,返回值類型double
    2,參數列表 double a,double b
    */
     
    public static double add(double a,int b) {
    return a + b;
    }
    }

    ###04.13_Java語言基礎(方法重載練習比較數據是否相等)
    * A:案例演示
    * 需求:比較兩個數據是否相等。
    * 參數類型分別爲兩個int類型,兩個double類型,並在main方法中進行測試
    案例:
    class Test3_Overload {
    public static void main(String[] args) {
    boolean b1 = isEquals(10,10);
    System.out.println(b1);
     
    boolean b2 = isEquals(10.5,10.5);
    System.out.println(b2);
    }
     
    /*
    比較兩個數據是否相等
    1,返回值類型boolean
    2,參數列表int a,int b
    */
     
    public static boolean isEquals(int a,int b) {
    return a == b;
    }
     
    /*
    比較兩個數據是否相等
    1,返回值類型boolean
    2,參數列表double a,double b
    */
     
    public static boolean isEquals(double a,double b) {
    return a == b;
    }
    }
    ###04.14_Java語言基礎(數組概述和定義格式說明)(瞭解)
    * A:爲什麼要有數組(容器)
    * 爲了存儲同種數據類型的多個值
    * B:數組概念
    * 數組是存儲同一種數據類型多個元素的集合。也可以看成是一個容器。
    * 數組既可以存儲基本數據類型,也可以存儲引用數據類型。

    * C:數組定義格式
    數據類型[] 數組名 = new 數據類型[數組的長度];
    案例:
    class Demo1_Array {
    public static void main(String[] args) {
    int x = 10;
    x = 20;
    System.out.println("x = " + x);
    //數據類型[] 數組名 = new 數據類型[數組的長度];
    int[] arr = new int[5]; //可以存儲五個int類型的數據
    /*
    左邊:
    int:數據類型
    []:代表的數組,幾個中括號就代表幾維數組
    arr:合法的標識符
    右邊:
    new:創建新的實體或對象
    int:數據類型
    []:代表的數組
    5:代表數組的長度
    */
     
    }
    }


    ###04.15_Java語言基礎(數組的初始化動態初始化)(掌握)
    * A:什麼是數組的初始化
    * 就是爲數組開闢連續的內存空間,併爲每個數組元素賦予值 
    * B:如何對數組進行初始化
    * a:動態初始化 只指定長度,由系統給出初始化值
    * int[] arr = new int[5]; 
    * b:靜態初始化 給出初始化值,由系統決定長度
    * C:動態初始化的格式:
    * 數據類型[] 數組名 = new 數據類型[數組長度];
    * D:案例演示
    * 輸出數組名稱和數組元素
    /*
            整數類型:byte,short,int,long默認初始化值都是0
    浮點類型:float,double默認初始化值都是0.0
    布爾類型:boolean默認初始化值false
    字符類型:char默認初始化值'\u0000'  之前講過'',只能放一個字符,但是'\'代表轉義字符,u代表unicode編碼,java採用的是unicode編碼,\u相當於把
    後面的4個0給轉義了。
    char在內存中佔的兩個字節,是16個二進制位
    \u0000,每一個0其實代表的是16進制的0,那麼四個0就是代表16個二進制位

    [I@19bb25a

    [代表是數組,幾個就代表幾維
    I代表是int類型
    @是固定的
    19bb25a代表的是數組的地址值
    */
    class Demo2_Array {
    public static void main(String[] args) {
    //數據類型[] 數組名 = new 數據類型[數組長度];
    int[] arr = new int[5]; //動態初始化,在內存中開闢連續的5塊空間
     
    System.out.println(arr[0]); //系統給出默認初始化值,整數類型的都是0
    arr[0] = 10;
     
    System.out.println(arr[0]);
     
    System.out.println(arr); //[I@19bb25a
    }
    }




    ###04.16_Java語言基礎(Java中的內存分配以及棧和堆的區別)
    * A:棧(掌握)
    * 存儲局部變量 
    * B:堆(掌握)
    * 存儲new出來的數組或對象 
    * C:方法區
    * 面向對象部分講解 
    * D:本地方法區  (native)
    * 和系統相關 
    * E:寄存器
    * 給CPU使用
    當編譯時會生成class文件,這些class文件會保存在硬盤上,當運行時,class文件被加載到內存中,內存中要進行代碼的執行,此時有進棧的也有進堆的,誰進棧,誰進堆,要看它屬於哪一塊,如果是局部變量就進棧,new出來的東西就進堆。一定要跑到內存中才能執行,如果在電腦中開了過多的應用程序,電腦就會卡。
    案例:
    class Demo3_Array {
    public static void main(String[] args) {
    int[] arr = new int[3];
    }

    ###04.17_Java語言基礎(數組的內存圖解1一個數組)(掌握)
    * A:畫圖演示
    * 一個數組
    案例:
    class Demo3_Array {
    public static void main(String[] args) {
    int[] arr = new int[3]; //動態初始化,創建3塊連續的空間
    System.out.println(arr);
    arr[0] = 10;
    arr[1] = 20;
     
    System.out.println(arr[0]);
    System.out.println(arr[1]);
    }
    }


    ###04.18_Java語言基礎(數組的內存圖解2二個數組)(瞭解)
    * A:畫圖演示
    * 二個不同的數組
    案例:
    class Demo4_Array {
    public static void main(String[] args) {
    int[] arr1 = new int[3]; //創建數組,長度爲3
    int[] arr2 = new int[3]; //創建數組,長度爲3
     
    System.out.println(arr1); //打印數組的地址值
    System.out.println(arr2);
     
    arr1[0] = 10; //給第一個數組中第一個元素賦值
    arr2[1] = 20; //給第二個數組中第二個元素賦值
     
    System.out.println(arr1[0]);
    System.out.println(arr1[1]);
    System.out.println(arr1[2]);
     
    System.out.println("--------------------------------------");
     
    System.out.println(arr2[0]);
    System.out.println(arr2[1]);
    System.out.println(arr2[2]);
    }
    }


    ###04.19_Java語言基礎(數組的內存圖解3三個引用兩個數組)(瞭解)
    * A:畫圖演示
    * 三個引用,有兩個數組的引用指向同一個地址
    案例:
    //三個引用兩個數組
    class Demo5_Array {
    public static void main(String[] args) {
    int[] arr1 = new int[3];
    int[] arr2 = new int[5];
    int[] arr3 = arr2;
     
    System.out.println(arr1);
    System.out.println(arr2);
    System.out.println(arr3);
     
    arr1[0] = 10;
    arr1[1] = 20;
     
    arr2[1] = 30;
    arr3[1] = 40;
    arr3[2] = 50;
     
    System.out.println(arr1[0]);
    System.out.println(arr1[1]);
    System.out.println(arr1[2]);
    System.out.println("-------------------------------");
    System.out.println(arr2[0]);
    System.out.println(arr2[1]);
    System.out.println(arr2[2]);
    System.out.println(arr2[3]);
    System.out.println(arr2[4]);
    System.out.println("-------------------------------");
    System.out.println(arr3[0]);
    System.out.println(arr3[1]);
    System.out.println(arr3[2]);
    System.out.println(arr3[3]);
    System.out.println(arr3[4]);
    }
    }




    ###04.20_Java語言基礎(數組的初始化靜態初始化及內存圖)(掌握)
    * A:靜態初始化的格式:
    * 格式:數據類型[] 數組名 = new 數據類型[]{元素1,元素2,…};
    * 簡化格式:
    * 數據類型[] 數組名 = {元素1,元素2,…};
    * B:案例演示
    * 對數組的解釋
    * 輸出數組名稱和數組元素
    * C:畫圖演示
    * 一個數組
    案例:
    class Demo6_Array {
    public static void main(String[] args) {
    //數據類型[] 數組名 = new 數據類型[]{元素1,元素2,…};
    //int[] arr = new int[5]{11,22,33,44,55}; //不允許動靜結合
    int[] arr2 = {11,22,33,44,55}; //靜態初始化的簡寫形式
     
    //int[] arr; //聲明數組引用
    //arr = new int[]{11,22,33,44,55};
     
    //int[] arr2;
    //arr2 = {11,22,33,44,55}; //簡寫形式聲明和賦值在同一行,這樣寫會報錯
     
    System.out.println(arr2);
    System.out.println(arr2[4]);
    }
    }



    ###04.21_Java語言基礎(數組操作的兩個常見小問題越界和空指針)(掌握)
    * A:案例演示
    * a:ArrayIndexOutOfBoundsException:數組索引越界異常
    * 原因:你訪問了不存在的索引。
    * b:NullPointerException:空指針異常
    * 原因:數組已經不在指向堆內存了。而你還用數組名去訪問元素。
    案例:
    class Demo7_Exception {
    public static void main(String[] args) {
    int[] arr = new int[5]; //0x0011
    //System.out.println(arr[-1]); //當訪問數組中不存在的索引,會出現索引越界異常
     
    arr = null;
    System.out.println(arr[0]); //當數組引用賦值爲null,再去調用數組中的元素就會出現空指針異常
    }
    } 

      

    ###04.22_Java語言基礎(數組的操作1遍歷)(掌握)
    * A:案例演示
    * 數組遍歷:就是依次輸出數組中的每一個元素。
    * 數組的屬性:arr.length數組的長度
    * 數組的最大索引:arr.length - 1;
    案例:
    class Demo8_Array {
    public static void main(String[] args) {
    int[] arr = {11,22,33,44,55};
     
    /*System.out.println(arr[0]);//這麼做代碼的複用性太差,我們學習了循環
    System.out.println(arr[1]);
    System.out.println(arr[2]);
    System.out.println(arr[3]);
    System.out.println(arr[4]);*/
    for (int i = 0;i < 5 ;i++ ) {
    System.out.println(arr[i]);
    }
    System.out.println("---------------");
    //arr.length 代表的是數組的長度
    System.out.println(arr.length);
    for (int i = 0;i < arr.length ;i++ ) {
    System.out.println(arr[i]);
    }
     
    int[] arr2 = {3,4,5};
    print(arr2);
    }
     
    /*
    數組的遍歷
    1,返回值類型void
    2,參數列表int[] arr
    */
     
    public static void print(int[] arr) {
    for (int i = 0;i < arr.length ;i++ ) {
    System.out.print(arr[i] + " ");
    }
    }
    }

    ###04.23_Java語言基礎(數組的操作2獲取最值)(掌握)
    * A:案例演示
    * 數組獲取最值(獲取數組中的最大值最小值)
    案例:
    class Demo9_Array {
    public static void main(String[] args) {
    int[] arr = {33,77,22,44,55};
    int max = getMax(arr);
    System.out.println(max);
    }
     
    /*
    獲取數組中最大值
    1,返回值類型int
    2,參數列表int[] arr
    */
     
    public static int getMax(int[] arr) {
    int max = arr[0];
    for (int i = 1;i < arr.length ;i++ ) { //從數組的第二個元素開始遍歷
    if (max < arr[i]) { //如果max記錄的值小於的數組中的元素
    max = arr[i]; //max記錄住較大的
    }
    }
     
    return max;
    }
    }

    ###04.24_Java語言基礎(數組的操作3反轉)(掌握)
    * A:案例演示
    * 數組元素反轉(就是把元素對調)
    案例:
    class Demo10_Array {
    public static void main(String[] args) {
    int[] arr = {11,22,33,44,55};
    reverseArray(arr);
    print(arr);
    }
     
    /*
    數組元素反轉
    1,明確返回值類型void
    2,明確參數列表int[] arr
    */
     
    public static void reverseArray(int[] arr) {
    for (int i = 0;i < arr.length / 2 ; i++) {
    //arr[0]和arr[arr.length-1-0]交換
    //arr[1]和arr[arr.length-1-1]交換
    //arr[2]和arr[arr.lentth-1-2]
    //...
     
    int temp = arr[i];
    arr[i] = arr[arr.length-1-i];
    arr[arr.length-1-i] = temp;
    }
            }
            public static void reverseArray1(int[] arr) {
    for(int i=0,j=arr.length-1;i<=j;i++,j--) {
    int temp = arr[i];
    arr[i] = arr[j];
    arr[j] = temp;
    }
    }
     
    /*
    數組遍歷
    1,明確返回值類型void
    2,明確參數列表int[] arr
    */
     
    public static void print(int[] arr) {
    for (int i = 0;i < arr.length ;i++ ) { //遍歷數組中的每一個元素
    System.out.print(arr[i] + " "); //打印在控制檯
    }
    }
    }

    ###04.25_Java語言基礎(數組的操作4查表法)(掌握)
    * A:案例演示
    * 數組查表法(根據鍵盤錄入索引,查找對應星期)
    案例:
    import java.util.Scanner;
    class Demo11_Array {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("請輸入對應的星期範圍在1-7");
    int week = sc.nextInt();
     
    System.out.println("星期" + getWeek(week));
    }
     
    /*
    根據索引返回對應的星期
    1,返回值類型char
    2,參數列表int week
    */
     
    public static char getWeek(int week) {
    char[] arr = {' ','一','二','三','四','五','六','日'}; //定義了一張星期表
    return arr[week]; //通過索引獲取表中的元素
    }
    }

    ###04.26_Java語言基礎(數組的操作5基本查找)(掌握)
    * A:案例演示
    * 數組元素查找(查找指定元素第一次在數組中出現的索引)
    案例:
    class Demo12_Array {
    public static void main(String[] args) {
    int[] arr = {11,22,33,44,55,66,77};
    int index = getIndex(arr,88);
    System.out.println(index);
    }
     
    /*
    查找元素索引
    1,返回值類型int
    2,明確參數列表,int[] arr,int value
    */
     
    public static int getIndex(int[] arr,int value) {
    for (int i = 0;i < arr.length ;i++ ) { //數組的遍歷
    if (arr[i] == value) { //如果數組中的元素與查找的元素匹配
    return i;
    }
     
    }
    return -1;
    }
    }

    ###04.27_day04總結
    把今天的知識點總結一遍。
    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章