接上文
选择结构,或者称为分支结构,是编程语言中程序结构的一种,它表示进行一种判断,比如进行循环的时候判断何时终止循环。
选择结构语句包括if和switch,这和其它编程语言都是一样的,表示程序中可以有的选择分支。
首先来看下if语句。if语句包括单if语句,if-else语句和if-else if语句。单if语句只是对一个条件进行判断,符合改条件时执行某语句;if-else语句也是对某一条件进行判断,但是加入了不符合该条件的else语句部分;而if-else if语句则是对多个条件进行逐一判断的语句。if语句表示的选择结构符合自然语言,也就是“如果...就...(否则...)”或者是“如果1...就...如果2...就....如果3...就...(否则...)”,看了下面的示例就会更加明白if语句的使用:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool{
int number;
NSLog(@"Please input a number:");
scanf("%i",&number);
if(number<0){
number=-number;
}
NSLog(@"The absolute value is %i",number);
}
return 0;
}
编译运行这个程序,我们得到如下输出:
这个程序就是求一个数字的绝对值,当我们输入的数字小于0的时候,那么取反得到相反数,而对于正数则不用取反。就是上面的效果。
下面针对我们之前做过的分数类加一个将分数转为小数的函数,这里需要做出判断,就是针对分母是否为0进行判定,打开XCode,我们修改程序如下:
也就是加了一个函数-(double) convertToNum;之后编写它的实现:
-(double) convertToNum
{
if(denominator!=0){
return (double)numerator/denominator;
}else{
return NAN;
}
}
下面是测试用的主函数:
int main(int argc, const char * argv[])
{
@autoreleasepool {
Fraction *fractionA = [Fraction new];
Fraction *fractionB = [Fraction new];
[fractionA setNumerator:1];
[fractionA setDenominator:3];
NSLog(@"The value of fractionA is %g",[fractionA convertToNum]);
NSLog(@"fractionB is %i / %i",fractionB.numerator,fractionB.denominator);
NSLog(@"The value of fractionB is %g",[fractionB convertToNum]);
}
return 0;
}
编译运行,我们得到如下输出:
为什么我们没有对fractionB进行设置,但其中分子很分母都是0,这是由于我们初始化后,int型的值都会默认为0,那么不设置就是0了。而要对fractionB变为小数是不可以的,因为分母为0,则返回NAN,就是程序的输出结果。而对于fractionA则没有任何问题,正确输出了结果。
下面来看一下if-else结构的语句,先看如下的示例程序:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool{
int number,temp;
NSLog(@"Please input a number you want to test:");
scanf("%i",&number);
temp=number%2;
if(temp==0){
NSLog(@"Number %i is even number",number);
}else{
NSLog(@"Number %i is odd number",number);
}
}
return 0;
}
编译运行后,我们得到如下结果:
这是一个奇偶数判断的程序,输入一个数字对2求模,如果余数为0说明是偶数,否则是奇数。这中间就可以应用if-else来作为选择结构的语句。
下面来看if-else if的示例,也就是多个判断条件的用法:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool{
int score;
char level;
NSLog(@"Please input your score(Full mark is 100):");
scanf("%i",&score);
if(score>100){
NSLog(@"Invalid score!");return 0;
}else if(90<=score && score<=100){level='A';}
else if(80<=score && score<90){level='B';}
else if(70<=score && score<80){level='C';}
else if(60<=score && score<70){level='D';}
else if(0<=score && score<60){level='F';}
else{
NSLog(@"Invalid score!");return 0;
}
NSLog(@"Your level is %c",level);
}
return 0;
}
编译运行后,我们得到如下结果:
那么对于我们每次的输出,程序都做出了选择和判断。同时这里我们使用了与条件的综合判断,那么再看下面这个示例,我们使用更加复杂的条件进行判断:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool{
int year;
NSLog(@"Please input a year to test:");
scanf("%i",&year);
if((year%4==0 && year%100!=0) || year%400==0){
NSLog(@"Year %i is a leap year!",year);
}else{
NSLog(@"Year %i is not a leap year!",year);
}
}
return 0;
}
编译运行后,我们得到如下结果:
这是一个求闰年的程序,那么在if判断中我们使用了与条件和或条件组成的复合条件判断。
接下文
- 大小: 45.8 KB
- 大小: 37.9 KB
- 大小: 79.1 KB
- 大小: 70.9 KB
- 大小: 150 KB
- 大小: 125.9 KB
分享到:
相关推荐
Objective-C编程之道:IOS设计模式解析.pdf
Objective-C编程之道:iOS 设计模式解析电子书和源代码
Objective-c学习笔记 Objective-c学习笔记
这意味着Objective-C语言不仅需要一个编译器,同时也需要一个运行时系统来执行编译好的代码。这儿的运行时系统扮演的角色类似于Objective-C语言的操作系统,Objective-C基于该系统来工作。本文档将具体介绍NSObject类...
《Objective-C编程之道ios设计模式解析》电子书讲述了ios设计中常用的设计模式,希望可以帮助大家!
资源名称:Objective-C编程之道:iOS设计模式解析 资源截图:资源太大,传百度网盘了,链接在附件中,有需要的同学自取。
Objective-C编程之道:IOS设计模式解析 (1)
Objective-C基础教程:1天玩转Objective-C语法
Objective-C is the universal language of iPhone, iPad, and Mac apps, and Objective-C for Absolute Beginners, Second Edition starts you on the path to mastering this language and its latest release. ...
Objective-C 学习笔记 IOS软件开发
这意味着Objective-C语言不仅需要一个编译器,还需要一个运行时系统来执行编译的代码。Runtime系统是一种用于Objective-C语言的操作系统,它使OC语言工作起来。 Runtime的核心是在运行时动态操作类和消息分发给...
最全最新版 Objective-C编程之道IOS设计模式解析.pdf
Objective-C基础教程.pdf(Learn Objective-C on the Mac中文版) 中文扫描版 + 英文电子书 + 源码 该资源在Mac下用BetterZIP压缩,共三个分卷,其他分卷在我的资源中找。 更新: Windows下使用7zip对part1解压...
objective语言快速入门的绝佳途径,是视频教程的完整ppt课件,涵盖所有知识点,后出版书目为《iphone与ipad》开发实战的前半部分语言学习!
Objective-C Programming: The Big Nerd Ranch Guide (2nd Edition).epub (epub 格式) Want to write iOS apps or desktop Mac applications? This introduction to programming and the Objective-C language is ...
中文名: Objective-C基础教程 作者: Mark Dalrymple Scott Knaster译者: 高朝勤 杨越 刘霞图书 分类: 软件 资源格式: PDF 版本: 扫描版 出版社: 人民邮电出版社 书号: ISBN: 9787115208774 发行时间: 2009...
希望这个简单的Objective-C语言教程能够为你提供一个入门的起点。Objective-C是一种面向对象的编程语言,广泛应用于Mac OS和iOS开发。通过学习Objective-C的基本语法、类和对象、控制流程和方法等内容,你将能够编写...
《objective-c程序设计》通过大量的实例系统地介绍了objective-c语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读《objective-c程序设计》后,可以掌握objective-c语言的基本内容,并进行实际的iphone/...