溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

什么是JAVA結(jié)構(gòu)化編程

發(fā)布時(shí)間:2021-09-02 13:48:16 來(lái)源:億速云 閱讀:157 作者:chen 欄目:開發(fā)技術(shù)

本篇內(nèi)容主要講解“什么是JAVA結(jié)構(gòu)化編程”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“什么是JAVA結(jié)構(gòu)化編程”吧!

目錄
  • 1.什么是結(jié)構(gòu)化編程

  • 2.為什么要使用結(jié)構(gòu)化編程?

  • 3.三大結(jié)構(gòu)

    • A. 循環(huán)結(jié)構(gòu)

      • 一行代碼:

    • B. 分支結(jié)構(gòu)

      • C.重復(fù)結(jié)構(gòu)

      • 4.函數(shù)(在JAVA中叫方法)

        1.什么是結(jié)構(gòu)化編程

        編程中只使用三大結(jié)構(gòu)

        不能使用goto語(yǔ)句

        1972年美國(guó)科學(xué)家,發(fā)表論文證明所有的程序流程,只需要三大結(jié)構(gòu)完成。

        2.為什么要使用結(jié)構(gòu)化編程?

        把代碼分成一個(gè)一個(gè)的代碼塊

        極大的提高了代碼的可 讀性

        3.三大結(jié)構(gòu)

        A. 循環(huán)結(jié)構(gòu)

        • 單線程(一個(gè)執(zhí)行序列)

        • 代碼總是執(zhí)行上一行,再執(zhí)行下一行

        • 在順序結(jié)構(gòu)中,要提防不小心產(chǎn)生的空語(yǔ)句

        //空語(yǔ)句實(shí)例:
        public class BanchTest {
            public static void main(String[] args) {
                int i;
                for(i=0;i<5;i++);//這里的分號(hào)產(chǎn)生了空語(yǔ)句
                {   
                System.out.print(i);
                }
            }
        }
        //運(yùn)行結(jié)果為:
        //5
        //正確例子:
        public class BanchTest {
            public static void main(String[] args) {
                int i;
                for(i=0;i<5;i++)//注意這里沒(méi)分號(hào)
                {
                    System.out.print(i);
                }
            }
        }
        //運(yùn)行結(jié)果
        //01234
        一行代碼:
        • 在JAVA中分號(hào)是行的分隔符。

        • 在J S語(yǔ)言中分號(hào)、回車都是行的分隔符

        • 在VB語(yǔ)言中,回車是分隔符

        注釋:只要回車是分隔符、都需要右續(xù)行符

        B. 分支結(jié)構(gòu)

        • 單分支結(jié)構(gòu)(if)

        package com.kfm.leiyawen.Test0831;
        public class BanchTest {
            public static void main(String[] args) {
                test1();
            }
            private static void test1() {
                int age = 19;
                if(age>=18) {//注意這里的判斷題的大括號(hào)不要省略,除非執(zhí)行體和判別式在同一行
                    System.out.println("成年");
                }
            }
        }
        • 雙分支結(jié)構(gòu)(if...else..)

        package com.kfm.leiyawen.Test0831;
        public class BanchTest {
            public static void main(String[] args) {
                test1();
            }
            private static void test1() {
                int age = 1;
                if(age>=18) {//符合判別表達(dá)式執(zhí)行體
                    System.out.println("成年");
                }else {//不復(fù)合判別表達(dá)式執(zhí)行體
                    System.out.println("未成年");
                }
            }
        }
        • 多分支結(jié)構(gòu)

        a.多選一的結(jié)構(gòu)(多個(gè)分支結(jié)構(gòu)、只有一個(gè)被執(zhí)行)

        使用else if 比單分支滿足條件的做法,有更高的效率,所有的分支,同時(shí)只會(huì)執(zhí)行一個(gè)

        package com.kfm.leiyawen.Test0831;
        public class BanchTest {
            public static void main(String[] args) {
                test1();
            }
            private static void test1() {
                int age = 37;
                if(age<6) {
                    System.out.println("幼兒");
                }
                else if(age<18) {
                    System.out.println("少年");
                }
                else if(age<60) {
                    System.out.println("成年");
                }
                else {
                    System.out.println("老年人");
                }
            }
        }

        b.多選多的結(jié)構(gòu) (多個(gè)分支結(jié)構(gòu)、有多個(gè)被同時(shí)執(zhí)行)(switch)

        • 格式:switch(key) 其中key支持的類型有:

        1. int類型

        2.可以自動(dòng)升級(jí)為int的類型(byte、short、char、Integer)

        3. enum(枚舉類型)

        4.在JDK8之后還支持string類型

        • 在沒(méi)有break時(shí)會(huì)全部被執(zhí)行

        package com.kfm.leiyawen.Test0831;
        public class BanchTest {
            public static void main(String[] args) {
                test1();
            }
            private static void test1() {
                int key=1;
                switch(key) {
                case 1:
                    //這個(gè)條件下執(zhí)行的部分
                    System.out.println("成績(jī)優(yōu)秀");
                case 2:
                    System.out.println("成績(jī)良好");
                case 3:
                    System.out.println("成績(jī)一般");
                default:
                    //default等同于else,在switch中用default
                    System.out.println("成績(jī)不良");
                }
            }

        /*運(yùn)行結(jié)果為:
        成績(jī)優(yōu)秀
        成績(jī)良好
        成績(jī)一般
        成績(jī)不良*/

        package com.kfm.leiyawen.Test0831;
        public class BanchTest {
            public static void main(String[] args) {
                test1();
            }
            private static void test1() {
                int key=2;
                switch(key) {
                case 1:
                    //這個(gè)條件下執(zhí)行的部分
                    System.out.println("成績(jī)優(yōu)秀");
                case 2:
                    System.out.println("成績(jī)良好");
                case 3:
                    System.out.println("成績(jī)一般");
                default:
                    //default等同于else,在switch中用default
                    System.out.println("成績(jī)不良");
                }
            }
        }

        /*key值不同值下的運(yùn)行結(jié)果:
        成績(jī)良好
        成績(jī)一般
        成績(jī)不良
        */

        • 在break之后,選中哪個(gè)就執(zhí)行哪個(gè)(有多選一的效果)

        package com.kfm.leiyawen.Test0831;
        public class BanchTest {
            public static void main(String[] args) {
                test1();
            }
            private static void test1() {
                int key=1;
                switch(key) {
                case 1:
                    //這個(gè)條件下執(zhí)行的部分
                    System.out.println("成績(jī)優(yōu)秀");
                    break;//關(guān)閉
                case 2:
                    System.out.println("成績(jī)良好");
                    break;
                case 3:
                    System.out.println("成績(jī)一般");
                    break;
                default:
                    //default等同于else,在switch中用default
                    System.out.println("成績(jī)不良");
                }
            }
        }
        • 跑穿(沒(méi)有加break時(shí),可以進(jìn)入多個(gè)分支),只要以上條件都滿足時(shí),我都執(zhí)行

        package com.kfm.leiyawen.Test0831;
        public class BanchTest {
            public static void main(String[] args) {
                test1();
            }
            private static void test1() {
                int key=2;
                switch(key) {
                case 1:
                    //這個(gè)條件下執(zhí)行的部分
                    System.out.println("成績(jī)優(yōu)秀");
                case 2:
                    System.out.println("成績(jī)良好");
                case 3:
                    System.out.println("成績(jī)一般");
                default:
                    //default等同于else,在switch中用default
                    System.out.println("成績(jī)不良");
                    System.out.println("繼續(xù)加油");//滿足上面的四個(gè)條件,不管key的值是多少,此代碼都執(zhí)行。
                }
            }
        }

        注釋:設(shè)計(jì)跑穿就是為了支持多對(duì)多的關(guān)系。

        C.重復(fù)結(jié)構(gòu)

        • do while(until)

        • 先執(zhí)行循環(huán),再判別。

        package com.kfm.leiyawen.Test0831;
        public class BanchTest {
            public static void main(String[] args) {
                test1();
            }
            private static void test1() {
            int i = 0;
            int count=5;
                    do {
                        System.out.println(i);
                        i++;//循環(huán)變量自加
                    }
                    while(i<count);
            }
        }
        • while

        • 先判別,再執(zhí)行循環(huán)

        package com.kfm.leiyawen.Test0831;
        public class BanchTest {
            public static void main(String[] args) {
                test1();
            }
            private static void test1() {
            int i = 0;
            int count=5;
                    while(i<count) {
                        System.out.println(i);
                        i++;//循環(huán)變量自加
                    }
            }
        }

        注釋:while循環(huán)要比do..while循環(huán)好多了,因?yàn)閣hile循環(huán)的可讀性要比后者好太多。

        • for

        • (continue )跳出本次循環(huán)

        package com.kfm.leiyawen.Test0831;
        public class BanchTest {
            public static void main(String[] args) {
                test1();
            }
            private static void test1() {
            int count=5;
            for (int i = 0; i < count; i++) {
                if(i==3)continue;//跳出本次循環(huán),跳到右邊距離最近的}的左邊
                System.out.print(i);
            }     
            }
        }
        /*運(yùn)行結(jié)果
        0124
        */
        • (break)跳出本層循環(huán)

        package com.kfm.leiyawen.Test0831;
        public class BanchTest {
            public static void main(String[] args) {
                test1();
            }
            private static void test1() {
            int count=5;
            for (int i = 0; i < count; i++) {
                if(i==3) break;//跳出本次循環(huán),跳到右邊距離最近的}的右邊
                System.out.print(i);
            }     
            }
        }
        /*運(yùn)行結(jié)果
        012
        */
        • (return) 跳出函數(shù)

        package com.kfm.leiyawen.Test0831;
        public class BanchTest {
            public static void main(String[] args) {
                test1();
            }
            private static void test1() {
            int count=5;
            for (int i = 0; i < count; i++) {
                if(i==3) return;//跳出本函數(shù)
                System.out.print(i);
            }     
            }
        }
        /*運(yùn)行結(jié)果
        012
        */
        • forEach(遍歷集合)

        • for循環(huán)和while循環(huán)的區(qū)別:

        • for循環(huán)。定長(zhǎng)循環(huán),依靠固定循環(huán)次數(shù)作為結(jié)束條件。

        • while循環(huán)。標(biāo)志性循環(huán),依靠標(biāo)志來(lái)結(jié)束循環(huán)(文件是否讀到最后一行,用戶的輸入是否結(jié)束)。

        4.函數(shù)(在JAVA中叫方法)

        面向?qū)ο蟮恼Z(yǔ)言叫方法

        面向過(guò)程的語(yǔ)言叫函數(shù)

        在JAVA中沒(méi)有函數(shù)這么一說(shuō),只有方法一說(shuō)。實(shí)際上方法就是函數(shù),函數(shù)就是方法,只是在不同的語(yǔ)言不同的稱呼而已。有class聲明的就是類。類就是對(duì)一類事物的聲明,在JAVA中函數(shù)就是方法,就是后面帶有()的。類只是聲明,對(duì)象才是真實(shí)存在的可以干活的東西,所有的方法(也就是函數(shù))都需要用對(duì)象去調(diào)用(不包括靜態(tài)的static)

        • 什么是函數(shù)(函數(shù),子程序,過(guò)程)

        函數(shù)是一段可以復(fù)用的子程序。

        函數(shù)(function):有返回值(在C語(yǔ)言中void表示沒(méi)有返回值)

        過(guò)程(procedure):無(wú)返回值

        • 為什么要使用函數(shù)

        代碼的復(fù)用,提高了效率

        • 什么時(shí)候?qū)懸粋€(gè)函數(shù)

        • 復(fù)用

        在寫某個(gè)代碼時(shí),發(fā)現(xiàn)這個(gè)代碼似曾相識(shí)(寫過(guò))

        • 分割邏輯

        不應(yīng)該超過(guò)50行

        一個(gè)方法最好只能有一個(gè)功能(單一功能原則)

        功能簡(jiǎn)單更加利于復(fù)用

        • 函數(shù)的定義

          • 函數(shù)定義的區(qū)域:類體以內(nèi),方法以外。

          • 一模一樣(同名同參)的函數(shù)只能調(diào)用一次

          • 方法定義有7個(gè)組成要素:

        public static void main (String[] args) throws Exception {
        
        }

        1.權(quán)限修飾符 public

        2.static/final/abatract

        3.返回類型 void

        4.方法(函數(shù))名稱 main

        5.形式參數(shù)列表 (String[] args)

        6.異常列表 throws Exception

        7.{ } 方法體

        注釋:3 4 5 是必須的

        //兩個(gè)例子
        void test1 (){}
        abstaract void test1();//抽象方法
        • 函數(shù)如何返回返回值

          • 只要函數(shù)聲明一個(gè)不是void返回類型,所有分支必然需要一個(gè)返回值。

          • 返回值通過(guò)return語(yǔ)句進(jìn)行返回的,而且數(shù)據(jù)類型必須和方法聲明的返回類型匹配。

        • 函數(shù) 的調(diào)用

          • 如何調(diào)用一個(gè)方法

        1.可以多次調(diào)用

        package com.kfm.leiyawen.Test0831;
        public class BanchTest {
            public static void main(String[] args) {
                new BanchTest().test1();
        }
                void test1 (){
                    test2();
                    test2();
                    test2();
                } 
                void test2() {
                    System.out.println("JAVA使我快樂(lè)");
                }
            }

        2.至少在現(xiàn)在的時(shí)候方法(函數(shù))的實(shí)參(調(diào)用的時(shí)候叫實(shí)參)和形參(定義的時(shí)候叫形參)必須一致

        package com.kfm.leiyawen.Test0831;
        public class BanchTest {
            public static void main(String[] args) {
                new BanchTest().test1();
        }
                void test1 (){
                    test2(1);//括號(hào)里面的是實(shí)參
                    test2(2);
                    test2(3);
                } 
                void test2(int order) {//函數(shù)定義時(shí)叫形參
                    System.out.println("JAVA使我快樂(lè)"+order);
                }
            }

        運(yùn)行結(jié)果
        /*
        JAVA使我快樂(lè)1
        JAVA使我快樂(lè)2
        JAVA使我快樂(lè)3
        */

        • 函數(shù)可以直接或間接的調(diào)用自己

        遞歸

        到此,相信大家對(duì)“什么是JAVA結(jié)構(gòu)化編程”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

        向AI問(wèn)一下細(xì)節(jié)

        免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

        AI