程式語言基本組成:控制結構

海微發表於2012-09-05
控制結構細化一下,又可以分為輸入和輸出、分支結構控制、迴圈結構控制。不同的程式語言因為語法不同,程式碼的寫法有些出入,但只要熟悉了一門程式語言,再以此推之,其他的不會的程式語言,只有要寫幾遍差不多也就會了。

1.1.輸入和輸出

不要自欺,神是輕慢不得的。人種的是什麼,收的也是什麼。 《加拉太書》 6:7

從某種角度來看,軟體程式就是和人之間的對話。從本質上講,軟體程式可以看作一套定好的規則。規則定好了,人只有對他“說“(輸入)什麼,軟體程式就會自動按著指定的規則給你“答覆”(返回)什麼。要想得到什麼樣的答覆,就得看你對它“說”了什麼樣的話。換而言之,即經上的話“種的是什麼,收的也是什麼。”

程式語言翻譯

 “人種的是什麼,收的也是什麼”。經上記著:'信子的人有永生;不信子的人得不著永生'(《約翰福音》 3:36)。照著這樣所說,如果“種”下的是信心,收穫的是永生。“種”下的如果不是信心,則得不著永生。

程式碼清單1:InAndOutDemo類原始碼

/** * 程式語言基本組成之一:控制結構 */ package controlStructure;

import java.util.Scanner;

/** * 輸入和輸出示例 */ public class InAndOutDemo {

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

        System.out.println("經上記著:'信子的人有永生;不信子的人得不著永生'(《約翰福音》 3:36),你信嗎?");
        System.out.println("相信輸入yes,不相信,輸入no:");

        //獲取控制檯的輸入流
        Scanner in=new Scanner(System.in);

        //得到從控制檯輸入的選擇
        String answer = in.next();

        //《羅馬書》 10:10 因為人心裡相信,就可以稱義;口裡承認,就可以得救。
        if("yes".equalsIgnoreCase(answer)){
            System.out.println("祝賀你,按經上所說,信子的人有永生!");
        }else if("no".equalsIgnoreCase(answer)){
            System.out.println("對不起,按經上所說,不信子的人得不著永生!");
        }else{
            System.out.println("今生沒有做出選擇,經上沒說答案,自己去問上帝。");
        }
    }

}

InAndOutDemo.java執行結果一:(輸入yes)

經上記著:'信子的人有永生;不信子的人得不著永生'(《約翰福音》 3:36),你信嗎? 相信輸入yes,不相信,輸入no:yes 祝賀你,按經上所說,信子的人有永生!

InAndOutDemo執行結果二:(輸入no)

經上記著:'信子的人有永生;不信子的人得不著永生'(《約翰福音》 3:36),你信嗎? 相信輸入yes,不相信,輸入no:no 對不起,按經上所說,不信子的人得不著永生!

執行結果,輸入問號:

經上記著:'信子的人有永生;不信子的人得不著永生'(《約翰福音》 3:36),你信嗎? 相信輸入yes,不相信,輸入no:? 今生沒有做出選擇,經上沒說答案,自己去問上帝。

1.2.分支結構

程式語言是人類發明的計算機語言。作為人類的發明產物之一,自然脫離不出人類的思維習慣。當魚和熊掌同時擺在眼前,又不能兼得時,我們就不得不做出選擇。或選擇魚,放棄熊掌;或選擇熊掌,捨棄魚。現實生活中,這樣的情況比比皆是,面臨的選擇也很多。因此,我們不難明白為什麼在程式碼中,if和else會鋪天蓋地。

程式語言翻譯

if,翻譯成人的語言就是,“如果是這樣,那就。。”。else,翻譯成人的語言就是:“如果不是那樣,那就。。。”。switch,其實也是一種變形的分支結構控制。if…else…可以換成switch的寫法。Switch也可以換成if…else…的寫法。

從事兩三年軟體開發之中,適應了工作,也初步適應了社會,年齡漸長,生活壓力等隨之增長,愛思考的人一般會不自覺的開始打算未來了。不同的人會做出不同的選擇。

程式碼清單:BranchStructureDemo類原始碼

/** * 程式語言基本組成之一:控制結構 / package controlStructure; /* * 程式語言中基本控制結構中的分支結構控制 */ public class BranchStructureDemo {

/**
 *分析型別的控制結構,即:switch。
 */
public static void switchControl(){

    System.out.println("從事軟體開發兩三年了,我不得不在現在做出對未來的選擇:");
    int choice = 1; //選擇
    String result = "";
    switch(choice){
        case 1: result = "深入技術,走技術路線,一級級的爬著高階、架構師、技術總監的階梯。"; break;
        case 2: result = "偏向管理,走管理路線,做開發組長、專案經理、部門經理。"; break;
        case 3: result = "移情別戀,轉行做別的,如銷售。"; break;
        case 4: result = "'親不親,故鄉人;美不美,故鄉水.'回老家發展去。"; break;
        default : result = "不知如何選擇,繼續一天天做著眼前的重複的工作。"; break;
    }

    System.out.println("你的選擇的結果是:" + result );
}

/**
 * 分支型別的控制結構,即:if和else
 */
public static void branchControl(){
    //古今之成大事業、大學問者,必經過三種之境界:“昨夜西風凋碧樹。獨上 高樓,望盡天涯路。
    //(1)”此第一境也。“衣帶漸寬終不悔,為伊消得人憔悴 。
    //(2)”此第二境也。“眾裡尋他千百度,驀然回首,那人卻在,燈火闌珊處 。
    //(3)”此第三境也。此等語皆非大詞人不能道。然遽以此意解釋諸詞,恐為 晏歐諸公所不許也。
    // -----摘自王國維的<<人間詞話>>
    boolean isChoice = true; //是否做出了選擇
    if( isChoice){
        System.out.println("若年後,我站在'燈火闌珊處 '不禁回憶起當年的‘獨上高樓’,感慨萬千,'別是一翻滋味在心頭'。");
    }else{
        System.out.println("若年後,樓還是那樓,路還是那路。我依然站在樓上,望著遠方的'燈火闌珊','剪不斷,理還亂'。");
    }

}


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

    //switch型別的控制結構示例
    BranchStructureDemo.switchControl();

    //if…else…分支型別的控制結構示例
    BranchStructureDemo.branchControl();

}

}

BranchStructureDemo輸出結果:

從事軟體開發兩三年了,我不得不在現在做出對未來的選擇: 你的選擇的結果是:深入技術,走技術路線,一級級的爬著高階、架構師、技術總監的階梯。 若年後,我站在'燈火闌珊處 '不禁回憶起當年的‘獨上高樓’,感慨萬千,'別是一翻滋味在心頭'。

1.3.迴圈結構

傳道者說:“虛空的虛空,虛空的虛空,凡事都是虛空。” 人一切的勞碌,就是他在日光之下的勞碌,有什麼益處呢? 一代過去,一代又來,地卻永遠長存。 日頭出來,日頭落下,急歸所出之地。 風往南刮,又向北轉,不住地旋轉,而且返回轉行原道。 江河都往海里流,海卻不滿;江河從何處流,仍歸還何處 《傳道書》1:1-7

軟體系統是現實世界的一個模型。現實世界,“一代過去,一代又來”。永遠長存的地上,也是冬去春來,反覆無窮。這是一個充滿迴圈的世界,這種迴圈也帶進了程式語言,帶進了程式碼世界。

程式語言翻譯

摩西在詩篇的禱告中說到,“我們一生的年日是七十歲,若是強壯可到八十歲”。時光荏苒,人生有限,在此我們可以用迴圈統計下,“強壯”的活到了”八十歲”的人一生一共活了多少天。

程式碼清單:CycleControlDemo類原始碼

/** * 程式語言基本組成之一:控制結構 */ package controlStructure;

public class CycleControlDemo {

/**
 * 迴圈型別的控制結構:for迴圈示例,其他的還有while。
 */
public static void cycleControl(){

    //《詩篇》 90:10 我們一生的年日是七十歲,若是強壯可到八十歲;
    //但其中所矜誇的不過是勞苦愁煩,轉眼成空,我們便如飛而去。
    int strongAge = 80;//強壯的年齡80歲
    int totalDay = 0; //用於累計一共活了多少天
    int factAage = 0; //最後實際活了多少歲
    System.out.println("我生日的那一天,上帝把我送到這個世界上,於是我開始了我這一生的旅途...");
    for(int currentDage=1; currentDage<=strongAge; currentDage++){
        factAage = currentDage;
        System.out.println("經過一次春夏秋冬,又長了一歲。今年"+currentDage +"歲,我在...");
        totalDay += 365; //過一年,又多活了365天。

        if("意外事故".equals("發生")){
            break; //人沒了,呼吸停止,生命中斷。
        }
    }

    System.out.println("人生旅途結束,我又來到上帝面前,對上帝說:我這一生活到了"+factAage+"歲,一共活了"+totalDay+"天。");
    System.out.println(" 人生苦短,於是我想起了:《詩篇》 90:12 求你指教我們怎樣數算自己的日子,好叫我們得著智慧的心。 ");
}

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

    //迴圈型別的控制結構示例
    CycleControlDemo.cycleControl();
}

} ----------------------------------------------------------------- enter image description here

CycleControlDemo.java輸出結果: 我生日的那一天,上帝把我送到這個世界上,於是我開始了我這一生的旅途... 經過一次春夏秋冬,又長了一歲。今年1歲,我在... 經過一次春夏秋冬,又長了一歲。今年2歲,我在... ....(為了節約空間,中間的3-78省去) 經過一次春夏秋冬,又長了一歲。今年79歲,我在... 經過一次春夏秋冬,又長了一歲。今年80歲,我在... 人生旅途結束,我又來到上帝面前,對上帝說:我這一生活到了80歲,一共活了29200天。 人生苦短,於是我想起了:《詩篇》 90:12 求你指教我們怎樣數算自己的日子,好叫我們得著智慧的心。

相關文章