接上文
选择结构,或者称为分支结构,是编程语言中程序结构的一种,它表示进行一种判断,比如进行循环的时候判断何时终止循环。
选择结构语句包括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是一种基于C语言的面向对象编程语言,它是苹果公司Mac OS X和iOS操作系统的主要开发语言。Objective-C的特性使其成为构建Cocoa框架应用程序的理想选择。以下是对Objective-C关键概念的详细解释: 1. **...
这篇“Objective-C学习笔记”旨在帮助初学者理解并掌握这种强大的编程工具。 一、Objective-C基础 1. 类与对象:Objective-C中的所有操作都是基于类的,类是对象的模板,而对象是类的实例。理解类和对象的概念是...
根据给定的学习笔记,我们将从以下几个方面深入探讨Objective-C的基础语法: 1. **基本概念介绍**:包括类、对象、方法等基本概念。 2. **Objective-C核心类型**:如`NSString`、`NSArray`、`NSDictionary`。 3. **...
Objective-C 是一种面向对象的编程语言,起源于20世纪80年代,由Bard Cox发明,后来在NeXTSTEP操作系统中得到广泛应用。NeXT公司由Steve Jobs创立,并在1996年被苹果公司收购,Objective-C也随之成为苹果操作系统的...
这份“Objective-C学习资料”包含了内置的学习笔记和各内容源码,是作者在近两个月的学习过程中整理出来的成果,旨在为初学者提供有价值的指导。 首先,让我们深入了解一下Objective-C的基本概念。Objective-C是在...
Objective-C中的打印输出主要通过`NSLog`函数完成,其用法类似于C语言的`printf`函数,但是使用`@`符号作为字符串的前缀。 ```objective-c NSLog(@"Hello, World!"); ``` ##### 2. 变量与运算 Objective-C支持多种...
1. HelloWorld:创建第一个Objective-C程序,了解基本的语法和工程结构。 2. 简单应用:尝试开发一个简单的macOS或iOS应用,如计时器、计算器等,加深对语言特性的理解。 3. 深入学习:逐步学习Cocoa或Cocoa Touch...
**Objective-C**是一种面向对象的编程语言,它在C语言的基础上增加了面向对象的功能,并且是开发iOS应用的主要语言之一。尽管Swift已经成为苹果官方推荐的新一代编程语言,但Objective-C仍然拥有大量的代码库和丰富...
Objective-C是一种简单的...Objective-C通过提供类定义,方法以及属性的语法,还有其他可以提高类的动态扩展能力的结构等,扩展了标准的ANSI C语言。类的语法和设计主要是基于Smalltalk,最早的面向对象编程语言之一。
这篇学习笔记主要涉及了Objective-C的基础知识,包括对象创建、类的结构、文件导入、实例变量、接口与实现、内存管理和属性。 1. **对象创建**: - `string`方法创建的字符串对象是自动释放的,意味着系统会在适当...
Objective-C是在C语言基础上扩展的,因此它保留了C语言的所有特性,如变量、函数、控制结构等。它的主要扩展是增加了消息传递机制和类的概念,这使得它成为一种面向对象的语言。消息传递是Objective-C的核心,通过向...
Objective-C 是苹果平台下开发 iOS 和 macOS 应用的主要编程语言之一,虽然 Swift 已经成为新宠,但Objective-C 的重要性仍然不可忽视,尤其是因为许多现有的类库和框架仍由 Objective-C 编写。以下是一份关于...
学习 Objective-C,不仅要掌握语法,还要理解其运行时系统和苹果提供的框架,如 Foundation 框架,这些都对于开发 iOS 和 macOS 应用至关重要。在实践中,不断编写代码和调试将是深化理解的最佳途径。
- **知识点**: `CGRect` 是一个用于表示矩形的数据结构,包含坐标和尺寸信息。 - **常用方法**: - `CGRectMake`: 创建一个指定位置和大小的矩形。 ```objective-c CGRect frame = CGRectMake(origin.x, origin.y,...
- **目标:** 通过这个过程熟悉iOS开发环境,包括Xcode IDE、Swift或Objective-C语言等。 **2.2 移植到iPad** - **理解API差异:** 虽然许多API在iPhone和iPad上相同,但也有部分特定于某一平台的功能。 - **重新...
",展示如何创建一个Objective-C程序的基本结构。 2. **对象创建与交互**:演示如何创建类,实例化对象,并通过消息传递调用方法。 3. **属性(Property)与存取器(Accessor)**:展示如何声明属性,使用`@property...
4. 兼容Objective-C:Swift允许开发者在同一个项目中同时使用Objective-C和Swift编写的代码,方便了从Objective-C语言向Swift的过渡。 知识点三:Swift基础结构 Swift的基础结构包含了多种数据类型,包括但不限于:...
根据提供的文件信息,我们可以整理出一系列关于Objective-C的基础知识点,主要涵盖了语法结构、变量类型、内存管理、类与对象操作等方面。以下是对这些知识点的详细解释: ### 1. 类的基本结构 - **声明...
【基于C语言的学习笔记(附代码)】 C语言是一种强大的、高效的编程语言,广泛应用于操作系统、嵌入式系统以及各种软件开发。这份学习笔记涵盖了C语言的基础、高级、系统和工具四个部分,旨在帮助读者全面理解和...