美文网首页
运算与对象操作(四)— 选择结构

运算与对象操作(四)— 选择结构

作者: 赵亦晨 | 来源:发表于2016-10-21 02:12 被阅读0次

前言:对于任何语言来说有能力判断是一项基本的特性,例如在循环语句中就需要判断什么时候结束条件语句。Objective-C兼容了C语言的特性,所以C语言中的几种选择结构仍然适用于OC语言:if语句、switch语句、conditional运算符

1.if 语句

if语句是OC语言提供的具有一般判断能力的语言结构,通过判定所给条件的真假来选择需要执行的操作。

if (表达式)  语句

intx=3,y=5;

if(x

NSLog(@"宏创学院欢迎您!");

}

if (表达式)  语句1    else  语句2

intx=3,y=5;

if(x>y){

NSLog(@"宏创学院欢迎您!");

}else{

NSLog(@"学iOS就来宏创学院吧!");

}

if (表达式1)  语句1    else if (表达式2)  语句2    else if (表达式3)  语句3 … else 语句n

intx=3,y=5;

if(x

NSLog(@"宏创学院欢迎您!");

}elseif(x>y){

NSLog(@"学iOS就来宏创学院吧!");

}else{

NSLog(@"www.hcios.com");

}

if语句也是可以多层嵌套的,在多层嵌套的if语句中,每个判断条件下的语句都应该使用大括号括起来,避免发生歧义。

2.switch 语句

OC语言还提供了另一种用于多分支选择的switch语句, 其一般形式为:

switch(表达式){

case 常量表达式1:  语句1;

case 常量表达式2:  语句2;

case 常量表达式n:  语句n;

default:  语句n+1;

}

其语义是:计算表达式的值。 并逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。所以为了让程序只执行某个case后面的语句时,我们需要在该case的末尾添加break语句。

// 从键盘输入一个数字,数字1~7代表周一~周日,其余的数字打印Error

intdate;

scanf("%d",&date);

switch(date){

case1:

NSLog(@"Monday");

break;

case2:

NSLog(@"Tuesday");

break;

case3:

NSLog(@"Wednesday");

break;

case4:

NSLog(@"Thursday");

break;

case5:

NSLog(@"Friday");

break;

case6:

NSLog(@"Saturday");

break;

case7:

NSLog(@"Sunday");

break;

default:

NSLog(@"Error!");

break;

}

有时候会出现很多个case下需要执行的代码都相同,那么可以使用下面的形式:

// 从键盘输入一个数字,数字1~7代表周一~周日,其余的数字打印Error

intdate;

scanf("%d",&date);

switch(date){

case1:

case2:

case3:

case4:

case5:

NSLog(@"weekday");

break;

case6:

case7:

NSLog(@"weekend");

break;

default:

NSLog(@"Error!");

break;

}

上面的代码中case 1~5执行的代码都是一样的,都会打印weekday,case 6~7执行的代码一样,会打印weekend,这样写会比较简洁。

如果一个case下的代码中出现定义新变量的操作时,那么case语句冒号后的内容需要加上大括号,否则编译器会报错,其他情况下多行语句可以不适用大括号括起,程序会按顺序执行每一行代码。例如:

case1:{

// case中定义新的变量时需要加上大括号

intnewNumber=10;

NSLog(@"newNumber = %d",newNumber);

break;

}

3.conditional 运算符为三目运算符。

条件运算符是OC语言中较为特殊的一种运算符,因为它是三元运算符,也就是说它需要接受三个运算数。条件运算符的一般格式为:

condition ? expression1 : expression2

在这个语法当中,condition表示一个表达式,通常为关系表达式,OC系统会首先对它求值。如果对condition的求值结果为真(非零)时,程序将返回expression1的结果,如果 对condition的求值结果为假(值为零)时,程序将返回expression2的结果。例如:

max = a > b ? a : b;

上面一行代码的意思是比较 a 与 b 的大小,将 a 与 b 中较大的一个赋给 max。

条件运算符优先级高于赋值、逗号运算符,低于其他运算符,例如:

m

等价于 ==>  (m

条件运算符具有右结合性:

当一个表达式中出现多个条件运算符时,应该将位于最右边的问号与离它最近的冒号配对,并按这一原则正确区分各条件运算符的运算对象。

例如:

e1  ?  e2  :  e3  ?  e4  :  e5

与 e1  ?  e2  : ( e3  ?  e4  :  e5) 等价。

使用条件表达式可以提高程序的运行效率,但是会降低程序的可读性,尤其是多重条件表达式嵌套使用时,会使程序阅读起来很吃力。

相关文章

  • 运算与对象操作(四)— 选择结构

    前言:对于任何语言来说有能力判断是一项基本的特性,例如在循环语句中就需要判断什么时候结束条件语句。Objectiv...

  • 运算与对象操作(三) — 循环结构

    前言:在Objective-C中,经常会遇到重复的执行同一段代码的情况。这时候就会使用到循环功能,和其它编程语言一...

  • Pandas常用方法

    一、Pandas数据结构 二、读取数据 三、数据预处理 四、数据选择 五、数值操作 六、数据运算 七、时间序列 八...

  • swift 基本运算符

    术语 一元运算符对单一操作对象操作,如 -a一元运算符分前置运算符和后置运算符前置运算符需紧跟在操作对象之前,如 ...

  • Python 基础知识全篇-If 结构

    If 结构 If 结构允许程序做出选择,并根据不同的情况执行不同的操作 基本用法 比较运算符 根据 PEP 8 标...

  • 7 Python运算符和操作对象

    运算符和操作对象是计算机中比较常见的,所有计算都涉及运算符和操作对象。本节将介绍Python中的运算符和操作对象。...

  • 数据结构基本概念

    1.数据结构是什么? 数据结构是一门研究非数值运算的程序设计问题中的操作对象,以及他们之间的关系和操作等相...

  • 控制语句执行流程

    Python中流程控制语句 选择结构if 循环结构for for与range() 用while循环 增量赋值运算符...

  • 二阶段day5-JS基础语法

    一、基础语法 二、变量 三、运算符 四、分支结构 五、循环结构 六、函数 七、字符串 八、数组 九、对象

  • 关系模型之基本概念

    关系模型三个要素 基本结构形式 基本操作关系运算 操作的对象及结果都是集合 完整性约束 表的定义 首先定义“列”的...

网友评论

      本文标题:运算与对象操作(四)— 选择结构

      本文链接:https://www.haomeiwen.com/subject/dhvquttx.html