'「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟'

程序設計 編程語言 讀書 射擊 跟著嚴Sir學編程 2019-08-26
"

跟著嚴Sir學編程繼續更新。希望嚴Sir能用20年程序類課程教學經驗,幫助更多的夥伴更加容易地學習和理解程序。在相關的文章當中,我更多的是根據自己理解來講解,並且根據自己教學經驗,對於重點和難點問題進行了生活化的處理,這樣能讓更多的人容易理解,同時也帶來了學術表達上的嚴謹程度不足。歡迎大家閱讀、點贊、轉發,更歡迎大家批評指正!

這是概念梳理的第04篇文章。

很多程序設計初學者進入函數知識學習時,會覺得很困難,不容易理解,使得函數內容成為了學習的分水嶺,也成為轉向全面對象程序設計語言的攔路虎。

總結原因,兩方面的問題:

第一:沒有弄清楚程序設計當中的函數概念,結構混亂。

第二:函數形參無法確定,一陣亂寫。

嚴Sir會用2個比喻來講解,相信會讓你恍然大悟。


1 到底什麼是函數?—— 一把手槍

程序設計當中,到底什麼是函數呢?函數有幾類?函數的結構是什麼呢?

01 函數的定義

清華大學出版社C程序教材當中對於函數定義:

函數就是功能,一個函數用來實現一個功能。

學到一定程度後,來看這個定義,你會發現講的很透徹,但是初學者看到這個定義時,往往是一頭霧水。

嚴Sir對於函數的理解是:

函數,就是具有一定格式,完成特定功能的程序段,簡單理解就是一件工具,如 一把手槍 。

分析一下:提到手槍,大家的腦海裡面是不是浮現出這樣的一幅畫面。

"

跟著嚴Sir學編程繼續更新。希望嚴Sir能用20年程序類課程教學經驗,幫助更多的夥伴更加容易地學習和理解程序。在相關的文章當中,我更多的是根據自己理解來講解,並且根據自己教學經驗,對於重點和難點問題進行了生活化的處理,這樣能讓更多的人容易理解,同時也帶來了學術表達上的嚴謹程度不足。歡迎大家閱讀、點贊、轉發,更歡迎大家批評指正!

這是概念梳理的第04篇文章。

很多程序設計初學者進入函數知識學習時,會覺得很困難,不容易理解,使得函數內容成為了學習的分水嶺,也成為轉向全面對象程序設計語言的攔路虎。

總結原因,兩方面的問題:

第一:沒有弄清楚程序設計當中的函數概念,結構混亂。

第二:函數形參無法確定,一陣亂寫。

嚴Sir會用2個比喻來講解,相信會讓你恍然大悟。


1 到底什麼是函數?—— 一把手槍

程序設計當中,到底什麼是函數呢?函數有幾類?函數的結構是什麼呢?

01 函數的定義

清華大學出版社C程序教材當中對於函數定義:

函數就是功能,一個函數用來實現一個功能。

學到一定程度後,來看這個定義,你會發現講的很透徹,但是初學者看到這個定義時,往往是一頭霧水。

嚴Sir對於函數的理解是:

函數,就是具有一定格式,完成特定功能的程序段,簡單理解就是一件工具,如 一把手槍 。

分析一下:提到手槍,大家的腦海裡面是不是浮現出這樣的一幅畫面。

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

手槍的作用是:完成擊發子彈進行射擊的功能。

手槍的結構:手機由固定的幾個部分構成。

所以,手槍是具有一定格式,完成特定功能的一件工具,它就是函數。

02 函數的結構

函數由兩部分組成,一是函數頭,二是函數體。

函數頭包括3個內容,一是函數類型(就是函數返回值類型),二是函數名字,三是形參列表。

函數體就是函數中,用花括號(大括號)括起來的,具體功能代碼。

具體格式如下:

函數類型 函數名(形參列表)

"

跟著嚴Sir學編程繼續更新。希望嚴Sir能用20年程序類課程教學經驗,幫助更多的夥伴更加容易地學習和理解程序。在相關的文章當中,我更多的是根據自己理解來講解,並且根據自己教學經驗,對於重點和難點問題進行了生活化的處理,這樣能讓更多的人容易理解,同時也帶來了學術表達上的嚴謹程度不足。歡迎大家閱讀、點贊、轉發,更歡迎大家批評指正!

這是概念梳理的第04篇文章。

很多程序設計初學者進入函數知識學習時,會覺得很困難,不容易理解,使得函數內容成為了學習的分水嶺,也成為轉向全面對象程序設計語言的攔路虎。

總結原因,兩方面的問題:

第一:沒有弄清楚程序設計當中的函數概念,結構混亂。

第二:函數形參無法確定,一陣亂寫。

嚴Sir會用2個比喻來講解,相信會讓你恍然大悟。


1 到底什麼是函數?—— 一把手槍

程序設計當中,到底什麼是函數呢?函數有幾類?函數的結構是什麼呢?

01 函數的定義

清華大學出版社C程序教材當中對於函數定義:

函數就是功能,一個函數用來實現一個功能。

學到一定程度後,來看這個定義,你會發現講的很透徹,但是初學者看到這個定義時,往往是一頭霧水。

嚴Sir對於函數的理解是:

函數,就是具有一定格式,完成特定功能的程序段,簡單理解就是一件工具,如 一把手槍 。

分析一下:提到手槍,大家的腦海裡面是不是浮現出這樣的一幅畫面。

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

手槍的作用是:完成擊發子彈進行射擊的功能。

手槍的結構:手機由固定的幾個部分構成。

所以,手槍是具有一定格式,完成特定功能的一件工具,它就是函數。

02 函數的結構

函數由兩部分組成,一是函數頭,二是函數體。

函數頭包括3個內容,一是函數類型(就是函數返回值類型),二是函數名字,三是形參列表。

函數體就是函數中,用花括號(大括號)括起來的,具體功能代碼。

具體格式如下:

函數類型 函數名(形參列表)

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

03 函數分類

函數可以分為兩類:

第一:一把手槍如果放在軍火庫裡面,直接拿出來用就可以了,這種函數叫 庫函數。

第二:如果手槍不存在,需要自己一步一步來做,做好才能用,這種函數叫做 自定義函數。

04 函數的兩個階段

第一個階段:函數定義階段,就是函數製造階段,把手槍做出來。

第二個階段:函數調用階段,就是使用函數,運用手槍做事情。

對於庫函數而言,只有第二個階段,對於自定義函數,兩個函數都需要。

2 到底如何確定形參?—— 手槍彈夾

對於很多新手而言,函數定義階段是難點。基本格式沒有問題,具體代碼也會寫,只是這個形參要不要,要幾個,什麼類型,完全靠蒙。

01 形參的定義

什麼是形參?這個問題需要弄明白。

先思考一個問題:手槍生產商在製造手槍時,會不會將子彈放在手槍裡面?

一定不會。但是手槍生產商一定會為手槍配上一個東西——彈夾。

"

跟著嚴Sir學編程繼續更新。希望嚴Sir能用20年程序類課程教學經驗,幫助更多的夥伴更加容易地學習和理解程序。在相關的文章當中,我更多的是根據自己理解來講解,並且根據自己教學經驗,對於重點和難點問題進行了生活化的處理,這樣能讓更多的人容易理解,同時也帶來了學術表達上的嚴謹程度不足。歡迎大家閱讀、點贊、轉發,更歡迎大家批評指正!

這是概念梳理的第04篇文章。

很多程序設計初學者進入函數知識學習時,會覺得很困難,不容易理解,使得函數內容成為了學習的分水嶺,也成為轉向全面對象程序設計語言的攔路虎。

總結原因,兩方面的問題:

第一:沒有弄清楚程序設計當中的函數概念,結構混亂。

第二:函數形參無法確定,一陣亂寫。

嚴Sir會用2個比喻來講解,相信會讓你恍然大悟。


1 到底什麼是函數?—— 一把手槍

程序設計當中,到底什麼是函數呢?函數有幾類?函數的結構是什麼呢?

01 函數的定義

清華大學出版社C程序教材當中對於函數定義:

函數就是功能,一個函數用來實現一個功能。

學到一定程度後,來看這個定義,你會發現講的很透徹,但是初學者看到這個定義時,往往是一頭霧水。

嚴Sir對於函數的理解是:

函數,就是具有一定格式,完成特定功能的程序段,簡單理解就是一件工具,如 一把手槍 。

分析一下:提到手槍,大家的腦海裡面是不是浮現出這樣的一幅畫面。

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

手槍的作用是:完成擊發子彈進行射擊的功能。

手槍的結構:手機由固定的幾個部分構成。

所以,手槍是具有一定格式,完成特定功能的一件工具,它就是函數。

02 函數的結構

函數由兩部分組成,一是函數頭,二是函數體。

函數頭包括3個內容,一是函數類型(就是函數返回值類型),二是函數名字,三是形參列表。

函數體就是函數中,用花括號(大括號)括起來的,具體功能代碼。

具體格式如下:

函數類型 函數名(形參列表)

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

03 函數分類

函數可以分為兩類:

第一:一把手槍如果放在軍火庫裡面,直接拿出來用就可以了,這種函數叫 庫函數。

第二:如果手槍不存在,需要自己一步一步來做,做好才能用,這種函數叫做 自定義函數。

04 函數的兩個階段

第一個階段:函數定義階段,就是函數製造階段,把手槍做出來。

第二個階段:函數調用階段,就是使用函數,運用手槍做事情。

對於庫函數而言,只有第二個階段,對於自定義函數,兩個函數都需要。

2 到底如何確定形參?—— 手槍彈夾

對於很多新手而言,函數定義階段是難點。基本格式沒有問題,具體代碼也會寫,只是這個形參要不要,要幾個,什麼類型,完全靠蒙。

01 形參的定義

什麼是形參?這個問題需要弄明白。

先思考一個問題:手槍生產商在製造手槍時,會不會將子彈放在手槍裡面?

一定不會。但是手槍生產商一定會為手槍配上一個東西——彈夾。

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

請問這個彈夾是用來做什麼的?是用來在使用時裝子彈用的。

彈夾是手槍的一部分,在生產手槍時,彈夾是沒有子彈的,在使用手槍時,彈夾才會裝進子彈。於是我們說:彈夾是為了使用手槍時裝子彈預留的空間。

形參就是彈夾。形參就是為了使用函數時所預留的空間,形參就是為了使用函數時所預留的變量。

02 形參的確定

這是函數定義中最難的問題。

需不需要形參?需要幾個形參?形參是什麼類型?

這可以說是函數定義中的追命三連問。

為了解決這些問題,嚴Sir總結出一個總原則,只要按照這個總原則進行思考,所有問題迎刃而解。

形參思考總原則:

為了實現一個功能,必須知道,但是又不知道的條件,就應該定義成形參,有幾個這樣的條件,就定義幾個形參,類型根據分析確定。定義成形參以後,在函數體當中就可以當作已知條件來使用。

接下來,我們通過具體的例子來分析。

例1:定義一個函數,返回三個整數當中的最大值。

形參確定思路:

1.這個函數的功能是什麼?

返回三個整數當中的最大值。

2.要實現這個函數必須知道又不知道的條件是什麼?

要得到三個整數的最大值,必須知道這三個整數,而現在這三個整數又不知道。

確定結果:需要三個整型的形參。

"

跟著嚴Sir學編程繼續更新。希望嚴Sir能用20年程序類課程教學經驗,幫助更多的夥伴更加容易地學習和理解程序。在相關的文章當中,我更多的是根據自己理解來講解,並且根據自己教學經驗,對於重點和難點問題進行了生活化的處理,這樣能讓更多的人容易理解,同時也帶來了學術表達上的嚴謹程度不足。歡迎大家閱讀、點贊、轉發,更歡迎大家批評指正!

這是概念梳理的第04篇文章。

很多程序設計初學者進入函數知識學習時,會覺得很困難,不容易理解,使得函數內容成為了學習的分水嶺,也成為轉向全面對象程序設計語言的攔路虎。

總結原因,兩方面的問題:

第一:沒有弄清楚程序設計當中的函數概念,結構混亂。

第二:函數形參無法確定,一陣亂寫。

嚴Sir會用2個比喻來講解,相信會讓你恍然大悟。


1 到底什麼是函數?—— 一把手槍

程序設計當中,到底什麼是函數呢?函數有幾類?函數的結構是什麼呢?

01 函數的定義

清華大學出版社C程序教材當中對於函數定義:

函數就是功能,一個函數用來實現一個功能。

學到一定程度後,來看這個定義,你會發現講的很透徹,但是初學者看到這個定義時,往往是一頭霧水。

嚴Sir對於函數的理解是:

函數,就是具有一定格式,完成特定功能的程序段,簡單理解就是一件工具,如 一把手槍 。

分析一下:提到手槍,大家的腦海裡面是不是浮現出這樣的一幅畫面。

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

手槍的作用是:完成擊發子彈進行射擊的功能。

手槍的結構:手機由固定的幾個部分構成。

所以,手槍是具有一定格式,完成特定功能的一件工具,它就是函數。

02 函數的結構

函數由兩部分組成,一是函數頭,二是函數體。

函數頭包括3個內容,一是函數類型(就是函數返回值類型),二是函數名字,三是形參列表。

函數體就是函數中,用花括號(大括號)括起來的,具體功能代碼。

具體格式如下:

函數類型 函數名(形參列表)

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

03 函數分類

函數可以分為兩類:

第一:一把手槍如果放在軍火庫裡面,直接拿出來用就可以了,這種函數叫 庫函數。

第二:如果手槍不存在,需要自己一步一步來做,做好才能用,這種函數叫做 自定義函數。

04 函數的兩個階段

第一個階段:函數定義階段,就是函數製造階段,把手槍做出來。

第二個階段:函數調用階段,就是使用函數,運用手槍做事情。

對於庫函數而言,只有第二個階段,對於自定義函數,兩個函數都需要。

2 到底如何確定形參?—— 手槍彈夾

對於很多新手而言,函數定義階段是難點。基本格式沒有問題,具體代碼也會寫,只是這個形參要不要,要幾個,什麼類型,完全靠蒙。

01 形參的定義

什麼是形參?這個問題需要弄明白。

先思考一個問題:手槍生產商在製造手槍時,會不會將子彈放在手槍裡面?

一定不會。但是手槍生產商一定會為手槍配上一個東西——彈夾。

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

請問這個彈夾是用來做什麼的?是用來在使用時裝子彈用的。

彈夾是手槍的一部分,在生產手槍時,彈夾是沒有子彈的,在使用手槍時,彈夾才會裝進子彈。於是我們說:彈夾是為了使用手槍時裝子彈預留的空間。

形參就是彈夾。形參就是為了使用函數時所預留的空間,形參就是為了使用函數時所預留的變量。

02 形參的確定

這是函數定義中最難的問題。

需不需要形參?需要幾個形參?形參是什麼類型?

這可以說是函數定義中的追命三連問。

為了解決這些問題,嚴Sir總結出一個總原則,只要按照這個總原則進行思考,所有問題迎刃而解。

形參思考總原則:

為了實現一個功能,必須知道,但是又不知道的條件,就應該定義成形參,有幾個這樣的條件,就定義幾個形參,類型根據分析確定。定義成形參以後,在函數體當中就可以當作已知條件來使用。

接下來,我們通過具體的例子來分析。

例1:定義一個函數,返回三個整數當中的最大值。

形參確定思路:

1.這個函數的功能是什麼?

返回三個整數當中的最大值。

2.要實現這個函數必須知道又不知道的條件是什麼?

要得到三個整數的最大值,必須知道這三個整數,而現在這三個整數又不知道。

確定結果:需要三個整型的形參。

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

例2:定義一個函數,返回1~100的和。

形參確定思路:

1.這個函數的功能是什麼?

返回1~100的和。

2.要實現這個函數必須知道又不知道的條件是什麼?

不存在必須知道又不知道的條件。

確定結果:不需要形參。

"

跟著嚴Sir學編程繼續更新。希望嚴Sir能用20年程序類課程教學經驗,幫助更多的夥伴更加容易地學習和理解程序。在相關的文章當中,我更多的是根據自己理解來講解,並且根據自己教學經驗,對於重點和難點問題進行了生活化的處理,這樣能讓更多的人容易理解,同時也帶來了學術表達上的嚴謹程度不足。歡迎大家閱讀、點贊、轉發,更歡迎大家批評指正!

這是概念梳理的第04篇文章。

很多程序設計初學者進入函數知識學習時,會覺得很困難,不容易理解,使得函數內容成為了學習的分水嶺,也成為轉向全面對象程序設計語言的攔路虎。

總結原因,兩方面的問題:

第一:沒有弄清楚程序設計當中的函數概念,結構混亂。

第二:函數形參無法確定,一陣亂寫。

嚴Sir會用2個比喻來講解,相信會讓你恍然大悟。


1 到底什麼是函數?—— 一把手槍

程序設計當中,到底什麼是函數呢?函數有幾類?函數的結構是什麼呢?

01 函數的定義

清華大學出版社C程序教材當中對於函數定義:

函數就是功能,一個函數用來實現一個功能。

學到一定程度後,來看這個定義,你會發現講的很透徹,但是初學者看到這個定義時,往往是一頭霧水。

嚴Sir對於函數的理解是:

函數,就是具有一定格式,完成特定功能的程序段,簡單理解就是一件工具,如 一把手槍 。

分析一下:提到手槍,大家的腦海裡面是不是浮現出這樣的一幅畫面。

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

手槍的作用是:完成擊發子彈進行射擊的功能。

手槍的結構:手機由固定的幾個部分構成。

所以,手槍是具有一定格式,完成特定功能的一件工具,它就是函數。

02 函數的結構

函數由兩部分組成,一是函數頭,二是函數體。

函數頭包括3個內容,一是函數類型(就是函數返回值類型),二是函數名字,三是形參列表。

函數體就是函數中,用花括號(大括號)括起來的,具體功能代碼。

具體格式如下:

函數類型 函數名(形參列表)

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

03 函數分類

函數可以分為兩類:

第一:一把手槍如果放在軍火庫裡面,直接拿出來用就可以了,這種函數叫 庫函數。

第二:如果手槍不存在,需要自己一步一步來做,做好才能用,這種函數叫做 自定義函數。

04 函數的兩個階段

第一個階段:函數定義階段,就是函數製造階段,把手槍做出來。

第二個階段:函數調用階段,就是使用函數,運用手槍做事情。

對於庫函數而言,只有第二個階段,對於自定義函數,兩個函數都需要。

2 到底如何確定形參?—— 手槍彈夾

對於很多新手而言,函數定義階段是難點。基本格式沒有問題,具體代碼也會寫,只是這個形參要不要,要幾個,什麼類型,完全靠蒙。

01 形參的定義

什麼是形參?這個問題需要弄明白。

先思考一個問題:手槍生產商在製造手槍時,會不會將子彈放在手槍裡面?

一定不會。但是手槍生產商一定會為手槍配上一個東西——彈夾。

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

請問這個彈夾是用來做什麼的?是用來在使用時裝子彈用的。

彈夾是手槍的一部分,在生產手槍時,彈夾是沒有子彈的,在使用手槍時,彈夾才會裝進子彈。於是我們說:彈夾是為了使用手槍時裝子彈預留的空間。

形參就是彈夾。形參就是為了使用函數時所預留的空間,形參就是為了使用函數時所預留的變量。

02 形參的確定

這是函數定義中最難的問題。

需不需要形參?需要幾個形參?形參是什麼類型?

這可以說是函數定義中的追命三連問。

為了解決這些問題,嚴Sir總結出一個總原則,只要按照這個總原則進行思考,所有問題迎刃而解。

形參思考總原則:

為了實現一個功能,必須知道,但是又不知道的條件,就應該定義成形參,有幾個這樣的條件,就定義幾個形參,類型根據分析確定。定義成形參以後,在函數體當中就可以當作已知條件來使用。

接下來,我們通過具體的例子來分析。

例1:定義一個函數,返回三個整數當中的最大值。

形參確定思路:

1.這個函數的功能是什麼?

返回三個整數當中的最大值。

2.要實現這個函數必須知道又不知道的條件是什麼?

要得到三個整數的最大值,必須知道這三個整數,而現在這三個整數又不知道。

確定結果:需要三個整型的形參。

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

例2:定義一個函數,返回1~100的和。

形參確定思路:

1.這個函數的功能是什麼?

返回1~100的和。

2.要實現這個函數必須知道又不知道的條件是什麼?

不存在必須知道又不知道的條件。

確定結果:不需要形參。

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

例3:定義一個函數,返回1到整數n的和。

形參確定思路:

1.這個函數的功能是什麼?

返回1~n的和。

2.要實現這個函數必須知道又不知道的條件是什麼?

必須知道整數n,現在又不知道。

確定結果:需要一個整型的形參。

"

跟著嚴Sir學編程繼續更新。希望嚴Sir能用20年程序類課程教學經驗,幫助更多的夥伴更加容易地學習和理解程序。在相關的文章當中,我更多的是根據自己理解來講解,並且根據自己教學經驗,對於重點和難點問題進行了生活化的處理,這樣能讓更多的人容易理解,同時也帶來了學術表達上的嚴謹程度不足。歡迎大家閱讀、點贊、轉發,更歡迎大家批評指正!

這是概念梳理的第04篇文章。

很多程序設計初學者進入函數知識學習時,會覺得很困難,不容易理解,使得函數內容成為了學習的分水嶺,也成為轉向全面對象程序設計語言的攔路虎。

總結原因,兩方面的問題:

第一:沒有弄清楚程序設計當中的函數概念,結構混亂。

第二:函數形參無法確定,一陣亂寫。

嚴Sir會用2個比喻來講解,相信會讓你恍然大悟。


1 到底什麼是函數?—— 一把手槍

程序設計當中,到底什麼是函數呢?函數有幾類?函數的結構是什麼呢?

01 函數的定義

清華大學出版社C程序教材當中對於函數定義:

函數就是功能,一個函數用來實現一個功能。

學到一定程度後,來看這個定義,你會發現講的很透徹,但是初學者看到這個定義時,往往是一頭霧水。

嚴Sir對於函數的理解是:

函數,就是具有一定格式,完成特定功能的程序段,簡單理解就是一件工具,如 一把手槍 。

分析一下:提到手槍,大家的腦海裡面是不是浮現出這樣的一幅畫面。

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

手槍的作用是:完成擊發子彈進行射擊的功能。

手槍的結構:手機由固定的幾個部分構成。

所以,手槍是具有一定格式,完成特定功能的一件工具,它就是函數。

02 函數的結構

函數由兩部分組成,一是函數頭,二是函數體。

函數頭包括3個內容,一是函數類型(就是函數返回值類型),二是函數名字,三是形參列表。

函數體就是函數中,用花括號(大括號)括起來的,具體功能代碼。

具體格式如下:

函數類型 函數名(形參列表)

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

03 函數分類

函數可以分為兩類:

第一:一把手槍如果放在軍火庫裡面,直接拿出來用就可以了,這種函數叫 庫函數。

第二:如果手槍不存在,需要自己一步一步來做,做好才能用,這種函數叫做 自定義函數。

04 函數的兩個階段

第一個階段:函數定義階段,就是函數製造階段,把手槍做出來。

第二個階段:函數調用階段,就是使用函數,運用手槍做事情。

對於庫函數而言,只有第二個階段,對於自定義函數,兩個函數都需要。

2 到底如何確定形參?—— 手槍彈夾

對於很多新手而言,函數定義階段是難點。基本格式沒有問題,具體代碼也會寫,只是這個形參要不要,要幾個,什麼類型,完全靠蒙。

01 形參的定義

什麼是形參?這個問題需要弄明白。

先思考一個問題:手槍生產商在製造手槍時,會不會將子彈放在手槍裡面?

一定不會。但是手槍生產商一定會為手槍配上一個東西——彈夾。

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

請問這個彈夾是用來做什麼的?是用來在使用時裝子彈用的。

彈夾是手槍的一部分,在生產手槍時,彈夾是沒有子彈的,在使用手槍時,彈夾才會裝進子彈。於是我們說:彈夾是為了使用手槍時裝子彈預留的空間。

形參就是彈夾。形參就是為了使用函數時所預留的空間,形參就是為了使用函數時所預留的變量。

02 形參的確定

這是函數定義中最難的問題。

需不需要形參?需要幾個形參?形參是什麼類型?

這可以說是函數定義中的追命三連問。

為了解決這些問題,嚴Sir總結出一個總原則,只要按照這個總原則進行思考,所有問題迎刃而解。

形參思考總原則:

為了實現一個功能,必須知道,但是又不知道的條件,就應該定義成形參,有幾個這樣的條件,就定義幾個形參,類型根據分析確定。定義成形參以後,在函數體當中就可以當作已知條件來使用。

接下來,我們通過具體的例子來分析。

例1:定義一個函數,返回三個整數當中的最大值。

形參確定思路:

1.這個函數的功能是什麼?

返回三個整數當中的最大值。

2.要實現這個函數必須知道又不知道的條件是什麼?

要得到三個整數的最大值,必須知道這三個整數,而現在這三個整數又不知道。

確定結果:需要三個整型的形參。

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

例2:定義一個函數,返回1~100的和。

形參確定思路:

1.這個函數的功能是什麼?

返回1~100的和。

2.要實現這個函數必須知道又不知道的條件是什麼?

不存在必須知道又不知道的條件。

確定結果:不需要形參。

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟

例3:定義一個函數,返回1到整數n的和。

形參確定思路:

1.這個函數的功能是什麼?

返回1~n的和。

2.要實現這個函數必須知道又不知道的條件是什麼?

必須知道整數n,現在又不知道。

確定結果:需要一個整型的形參。

「概念梳理篇04」函數很難學?2個比喻來幫忙,會讓你恍然大悟


總結與思考

本文對於函數定義當中的難點問題進行解決,運用兩個比喻讓小夥伴們加深了思考。接下來請小夥伴們思考下面兩個函數有什麼不同,歡迎大家在留言區裡討論。

例1:實現一個函數,在屏幕上輸出3行4列的星號圖形。

例2:實現一個函數,在屏幕上輸出n行m列的星號圖形。

"