第2章 基本语法

本章概要

  • 编写你的第一个程序
  • 声明变量
  • 使用函数
  • 使用流控制语句
  • 使用循环  

在本章中,我将展示如何编写一个简单的Objective-C程序。这是一个会在控制台输出一条简短信息的非常简单的命令行程序。通过这个简单的程序来介绍一些Objective-C的基础知识。从实际写代码开始,再到使用变量和函数,最后,通过使用条件语句和循环来控制程序流。这些概念是学习编程语言的基础,在进入下一章之前你应该完整学习完本章的内容。

继续在第一章中所创建的Xcode项目中输入代码清单2-1所示的代码。这些代码应该写到以按照项目名命名的源文件中,该文件位于源文件组中。

代码清单2-1 你的第一个程序

#import <Foundation/Foundation.h>

int main(int argc, const char *argv[])
{
    NSLog(@"Hello from Objective-C");
    return 0;
}

讲解代码时我会稍微跳跃点,因为通过这种方式更容易解释。

我们就从第3行开始,这是main函数的声明。所有的Objective-C的应用都有一个main函数,通常你不用看它,因为它通常是在创建项目时由项目模板创建的。当编写图形应用程序时,几乎不需要编辑这段代码。之所以在这里展示它,是因为我还想教你如何编写命令行应用程序。

所有的Objective-C应用都有一个main函数。main函数是程序开始也是程序结束的地方。程序已从操作系统调用main函数开始执行。argcargv这两个参数包含了通过命令行传递给应用程序的参数。程序接着开始逐行执行main函数中的每一行代码,直到遇到返回语句。在本例中,返回语句直接返回0。这表明程序成功地退出了。

说明

什么是函数?函数本质上是程序中的一个子程序。它是执行某项任务并返回值的代码分支。调用函数的时候,通过参数传送数据给函数(参数位于括号内),你可以通过几种方式从函数取回数据,但是主要的方式是通过接收返回值,即从函数返回到调用代码的值。

第5行调用了一个名为NSLog的函数。这个函数在程序运行时将传递给它的字符串输出到控制台。

第4行和第7行的大括号表示main函数的作用域,这是很常见的表示方法。第5行和第6行结尾的分号表示这些语句结束,编译器用分号将一个语句和另外一个区分开来。Objective-C中的语句可以分成多行书写,因此,编译器在一个语句结束的时候需要一些标记,这样它才能够分析那条语句。什么时候在一行的结尾需要分号会困扰很多初学者。记住,除了流控制语句以外,函数内部的所有语句,都需要以分号结尾。另外,声明也需要以分号结尾。第一行是一个import语句,导入语句允许你在当前文件中加载另外一份文件的代码。在本例中,我们包含了Foundation框架的接口声明。(你可以通过本书的第二部分更多地了解Foundation)。这行代码是必需的,有了它加载的代码,我们才能在第5行调用NSLog函数。看着有点怪的@"Hello from Objective-C"就是我们所说的字符串,字符串就是代码中的文本,它们一般存储在程序的一个变量中并且可以在以后访问。在这里,这个字符串将作为参数传送给NSLog函数,然后在控制台显示。

编译并运行这个应用程序然后查看输出结果,你应该看到如图2-1所示的内容。

图2-1 应用程序的输出

目录