程式語言的三個基本特性

更新於 發佈於 閱讀時間約 3 分鐘

Let's learn 3 properties of programming language.


自 1970 年代電腦被發明盛行多年後的今天,大部分人早已熟悉「程式語言」這個專有名詞,也知道它是被設計來控制電腦的一種知識工具,現今世界上有大一群人仰賴它來養家活口,重要性不言而喻。世界上出現的程式語言已經有上千種之多,每個都有其應用目的、設計邏輯跟一套非常相似文字符號系統,而且越近代的程式語言也越來越像自然語言,這點新手學習門檻降低不少,儘管如此仍然沒有一個人要敢說自己精通世上所有程式語言(也沒必要)。

關於程式語言的學習,只要掌握住幾個基本特性要熟悉幾種程式語言也不困難,這三個基本特性就是「循序、選擇、迴圈」。

循序,是程式語言的基礎

循序如同字面所言,就是從頭到尾按照順序。電腦最強大的地方在於聽取指令快速做出行動且 100% 執行。軟體工程師要做的事就是把需要電腦做的複雜任務拆解成單一步驟組合成一個流程,再用程式語言「翻譯」來寫入到文本裡變成程式碼。

換句話說,循序就是按照順序來,怎麼說就怎麼做(電腦完全符合誠信正直法則)。

選擇,是各種條件的判斷

了解循序概念跟一些簡單的語法,就能夠寫出一些規模小的腳本,簡單的程式,例如排程。通常看似簡單的行為需要的處理流程往往比想像的還複雜,舉個例子你就更明白了,小時候學過「過馬路要紅燈停綠燈行」,感覺很簡單,如果交給電腦來做用近代一點的程式語言來處理就會變成

「過馬路,如果看到有斑馬線且紅綠燈顯示紅燈,就原地等待;如果看到有斑馬線且紅綠燈顯示綠燈,就往前走」

如果 A 就 B 這種表達方式就是選擇,A 叫做判斷條件,B 為 A 條件符合後電腦接下來要執行的動作指令。

所有電腦的選擇行為都是軟體工程師預先寫好再被動等待觸發的,狀況覆蓋率取決於設計它的軟體工程師對問題的認知程度,覆蓋率高的程式「看起來」會更聰明。另外,無限制地加入各種判斷條件,等價、冗余的判斷條件也會影響執行效率。

迴圈,是自動重複的選擇

迴圈是基於選擇的一種應用,被用來連續處理一連串相同或相似的狀況,直到某個特殊條件成立。

繼續來用過馬路為例,前面說「過馬路,如果看到有斑馬線且紅綠燈顯示紅燈,就原地等待;如果看到有斑馬線且紅綠燈顯示綠燈,就往前走」,如果程式真的這樣寫,你會發現自己永遠等在斑馬線前面過不了馬路!因為紅燈是需要讀秒的,必須等到讀秒結束才會變綠燈,所以原本的判斷綠燈的程式碼等同沒有作用!

改善的方式就是使用第三個特性「迴圈」,讓程式每隔一小段時間就去檢查燈號再來決定要不要開始往前走,所以可以改成

「過馬路,如果看到有斑馬線且紅綠燈顯示紅燈,就原地等待;每隔一秒鐘就看一次燈號,如果看到有斑馬線且紅綠燈顯示綠燈,就不等待開始往前走,否則繼續等」

假設紅燈等待的時間是 30 秒,那麼這段程式判斷綠燈的動作就會被執行 30 次,而判斷綠燈的這段程式碼只要寫一次就可以了。

試著學習一個新的程式語言

「循序、選擇、迴圈」這三個程式語言基本原則是我自己在軟體這行運用多年的觀念,工作上我也用它來學會不少程式語言,每當有新的任務需求或是轉換工作有新的程式語言需求,我就能直奔主題只要稍微注意一下新的程式語言遇舊的差異點就可以差不多準備開工了,因此節省不少學習時間。

不過隨著物件導向語言的發展,顯然只用三個基本特性顯然已經不夠了,應該加入第四個特性「物件導向」來與時俱進,後續我打算來聊聊物件導向這個主題。

留言
avatar-img
留言分享你的想法!
EC3-avatar-img
2025/01/06
順序~選擇~迴圈 A~B~C:我來試看看這個循環。
avatar-img
Warren Lo的沙龍
21會員
65內容數
WarrenLo's 軟體設計武功祕笈
Warren Lo的沙龍的其他內容
2024/09/25
當我們從事軟體開發工作一段時間後,有些人會開始接觸軟體架構設計。由於每個軟體架構設計者的對問題的理解與知識經驗差異會導出不同的設計架構。近期與同事的軟體設計案例經驗交流後,就很希望自己剛開始學習軟體架構設計的時候就有人能用實際的軟體架構設計經驗來帶我入門...
Thumbnail
2024/09/25
當我們從事軟體開發工作一段時間後,有些人會開始接觸軟體架構設計。由於每個軟體架構設計者的對問題的理解與知識經驗差異會導出不同的設計架構。近期與同事的軟體設計案例經驗交流後,就很希望自己剛開始學習軟體架構設計的時候就有人能用實際的軟體架構設計經驗來帶我入門...
Thumbnail
2024/07/02
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
2024/07/02
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
2024/04/08
經過這麼多年的觀察與實踐,一個成熟的軟體工程師還需要第四個要素,它是讓決定你通往熟手的重要關鍵沒有之一。
Thumbnail
2024/04/08
經過這麼多年的觀察與實踐,一個成熟的軟體工程師還需要第四個要素,它是讓決定你通往熟手的重要關鍵沒有之一。
Thumbnail
看更多
你可能也想看
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
TOMICA第一波推出吉伊卡哇聯名小車車的時候馬上就被搶購一空,一直很扼腕當時沒有趕緊入手。前陣子閒來無事逛蝦皮,突然發現幾家商場都又開始重新上架,價格也都回到正常水準,估計是官方又再補了一批貨,想都沒想就立刻下單! 同文也跟大家分享近期蝦皮購物紀錄、好用推薦、蝦皮分潤計畫的聯盟行銷!
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
每年4月、5月都是最多稅要繳的月份,當然大部份的人都是有機會繳到「綜合所得稅」,只是相當相當多人還不知道,原來繳給政府的稅!可以透過一些有活動的銀行信用卡或電子支付來繳,從繳費中賺一點點小確幸!就是賺個1%~2%大家也是很開心的,因為你們把沒回饋變成有回饋,就是用卡的最高境界 所得稅線上申報
Thumbnail
這節課的學習目標是了解 CSS 的基本語法結構和使用方法。
Thumbnail
這節課的學習目標是了解 CSS 的基本語法結構和使用方法。
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
JavaScript是一種具有動態型別、弱型別、原型繼承等特性的高級腳本語言,應用範圍廣泛,包括前端開發、後端開發、移動應用等。它被各種公司和開源社區廣泛使用。學習JavaScript需要掌握ECMAScript標準、異步編程、模塊系統等知識。
Thumbnail
JavaScript是一種具有動態型別、弱型別、原型繼承等特性的高級腳本語言,應用範圍廣泛,包括前端開發、後端開發、移動應用等。它被各種公司和開源社區廣泛使用。學習JavaScript需要掌握ECMAScript標準、異步編程、模塊系統等知識。
Thumbnail
C#是一種開源、跨平台、面向對象的編程語言,具有類型安全、泛型、模式匹配等特性。廣泛應用於桌面和Web應用程序、遊戲開發、移動應用、雲計算等領域。全球數十萬家公司像微軟、Unity Technologies、Stack Overflow等使用C#支持其業務。C#還提供豐富的進階學習資源和主題。
Thumbnail
C#是一種開源、跨平台、面向對象的編程語言,具有類型安全、泛型、模式匹配等特性。廣泛應用於桌面和Web應用程序、遊戲開發、移動應用、雲計算等領域。全球數十萬家公司像微軟、Unity Technologies、Stack Overflow等使用C#支持其業務。C#還提供豐富的進階學習資源和主題。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
軟體系統的發展歷程大多相似,首重解決基本需求、提供操作介面,進而提升安全性、擴充功能、優化操作。
Thumbnail
學習程式語言是一個不容易的過程,但有效的學習方法可以幫助你克服挫折,這篇文章分享了一個程式設計師的學習心得以及一些建議,包括課後實作、短期學習、跟別人比較等注意事項,同時提供了一些相關的教學資源。
Thumbnail
學習程式語言是一個不容易的過程,但有效的學習方法可以幫助你克服挫折,這篇文章分享了一個程式設計師的學習心得以及一些建議,包括課後實作、短期學習、跟別人比較等注意事項,同時提供了一些相關的教學資源。
Thumbnail
程式設計中不可或缺的一部分 介面是使用者與程式互動的媒介,因此介面的設計會影響使用者的體驗和感受。一個清晰明白、易懂的介面,可以讓使用者輕鬆地使用程式,並獲得良好的使用體驗。 需要與程式設計師密切溝通 設計師需要了解程式的功能和需求,並根據使用者的習慣和需求進行設計。設計師和程式設計師之間的溝
Thumbnail
程式設計中不可或缺的一部分 介面是使用者與程式互動的媒介,因此介面的設計會影響使用者的體驗和感受。一個清晰明白、易懂的介面,可以讓使用者輕鬆地使用程式,並獲得良好的使用體驗。 需要與程式設計師密切溝通 設計師需要了解程式的功能和需求,並根據使用者的習慣和需求進行設計。設計師和程式設計師之間的溝
Thumbnail
關於程式語言的學習,只要掌握住幾個基本特性要熟悉幾種程式語言也不困難,這三個基本特性就是…
Thumbnail
關於程式語言的學習,只要掌握住幾個基本特性要熟悉幾種程式語言也不困難,這三個基本特性就是…
Thumbnail
介紹C++ 語法 資料型態,架構說明 程式語言為人類與電腦溝通的工具 程式設計流程: 定義問題 -> 問題分析 -> 撰寫演算法 ->程式撰寫 -> 程式執行及維護
Thumbnail
介紹C++ 語法 資料型態,架構說明 程式語言為人類與電腦溝通的工具 程式設計流程: 定義問題 -> 問題分析 -> 撰寫演算法 ->程式撰寫 -> 程式執行及維護
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News