在编程语言中最常见的就是顺序结构。顺序结构就是程序从上到下一行一地执行,中间没有跳转。如果没有流程控制,objective-c 中的语句是一个顺序执行流。
几乎所有的编程语言,都会提供2种基本的流程控制结构:分支结构(用于根据条件选择执行)和循环结构(用于根据条件循环重复执行代码)。
分支结构
objective-c 用于流程控制有2种分支语句:
1. if 语句:
2. switch 语句:
if 语句
if语句有3种形式:
// 第一种形式
if (condition) {
statements
}
// 第二种形式
if (condition) {
statements
} else {
statements
}
// 第三种形式
if (condition) {
statements
} else if(condition)
{
statements
}else if(condition)
{
statements
}
//可以有多个 else if
else{
statements
}
如果 if,else if 和 else 后的语句只有一句,可以省略花括号。单行语句就是一个整体,无需花括号进行定义成一个整体。
特别提示:先看下面的代码:
#import <Foundation/Foundation.h>
int main(int argc , char * argv[])
{
@autoreleasepool {
int age = 45;
if (age > 20)
{
NSLog(@"青年人");
}
else if (age > 40)
{
NSLog(@"中年人");
}
else if (age > 60)
{
NSLog(@"老年人");
}
}
}
能看出问题出在什么地方吗?出现在判断呢的逻辑上。上面的代码,只要大于20岁就在控制台打印一句”青年人”,不再往下执行。更正后的程序代码如下:
#import <Foundation/Foundation.h>
int main(int argc , char * argv[])
{
@autoreleasepool {
int age = 45;
if (age > 60)
{
NSLog(@"老年人");
}
else if (age > 40)
{
NSLog</