上期我們講解了Objective-C算式中的變數及基本數學運算符號的運用,今期我們繼續學習Objective-C的語法及編寫。
函式:
到目前為此,我們所編寫的程式只有短短幾行程式碼,對於由幾千行組成的 Apps,我們仍要繼續努力。
而一個程式碼,就包含了一連串又長又複雜的程式碼,當中若出現一些錯誤,我們都好難找它出來並作出修正。另外,在程式碼中,我們可能寫了一些重複出現好幾次的程式碼,如該程式碼出現問題,我們將要一次修改多處的程式碼,這將會是又浪費時間及很容易出錯的步驟,所以必須將程式碼重組,並將重複的程式碼加以組合,令每一組程式碼更有效率,使發現錯誤及修改程式碼相對變得容易。我們現在看看以下程式:
-(void)viewDidLoad()
{
// put some code here.
}
上述句中,我們定義了函式名稱為 viewDidLoad(),接下來是左大括號及右大括號,而我們必須將程式碼放進左及右大括號的中間,這個我們叫做函式主體,我們以上一堂的程式碼看看,應該把程式碼放置到哪一個位置上。
-(void)viewDidLoad()
{
[super viewDidLoad];
NSInteger picWidth;
float picHeight, picArea;
picWidth = 7;
picHeight = 5.5;
picArea = picWidth * picHeight;
}
如果我們再增加程式碼到 viewDidLoad() 中,將會面對程式碼的複雜性增加,大大增加了程式碼除錯的困難,所以我們要另寫一個程式,除了必要的程式碼在viewDidLoad()中,我們還要建立另一個 circleArea() 的函式。
- (void)circleArea()
{// put some code here.}
函式引數:
在前一段中,我們沒有提到函式中小括號的用法,其實小括號之間,是用來放置外來輸入的引數給函式使用,現在我們修改上面的程式以作函式之間的呼叫。
- (float)circleArea:(float) inRadius
{
float Area;
Area = 3.1416 * inRadius * inRadius;
return Area;
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSInteger picWidth;
float picHeight, picArea, circleSurfaceArea, circleRadius;
picWidth = 7;
picHeight = 5.5;
picArea = picWidth * picHeight;
circleRadius = 4.0;
// 我們在此呼叫我們剛寫的函式
circleSurfaceArea = [self circleArea: circleRadius];
NSLog(@"Circle Surface Area = %f", circleSurfaceArea);
}
{
float Area;
Area = 3.1416 * inRadius * inRadius;
return Area;
}
- (void)viewDidLoad
{
[super viewDidLoad];
NSInteger picWidth;
float picHeight, picArea, circleSurfaceArea, circleRadius;
picWidth = 7;
picHeight = 5.5;
picArea = picWidth * picHeight;
circleRadius = 4.0;
// 我們在此呼叫我們剛寫的函式
circleSurfaceArea = [self circleArea: circleRadius];
NSLog(@"Circle Surface Area = %f", circleSurfaceArea);
}
在以上的例子中,我們定義了circleRadius的變數及將這變數輸入到 circleArea 函式中作為 inRadius 引數,使函式 circleArea 可作自行運算,將結果放入 Area 的變數中,再回存出來,放入 viewDidLoad() 中的 circleSurfaceArea 的變數中。我們可見使用函式將減少了程式碼的複雜性及增加可讀性,令程式更加簡潔及容易除錯。
下期我們將會繼續講解 Objective-C 語法及除蟲方法,將結果列印到螢幕作除錯。
夏錫文
筆者為iPhone Apps開發專家,現每逢星期四會在此專欄教大家由淺入深,一步一步地踏進Apps 的創作世界。電郵:simonhsm@hotmail.com
筆者為iPhone Apps開發專家,現每逢星期四會在此專欄教大家由淺入深,一步一步地踏進Apps 的創作世界。電郵:simonhsm@hotmail.com
沒有留言:
發佈留言