`
sarin
  • 浏览: 1758000 次
  • 性别: Icon_minigender_1
  • 来自: 大连
博客专栏
E3b14d1f-4cc5-37dd-b820-b6af951740bc
Spring数据库访问系列...
浏览量:173784
C2083dc5-6474-39e2-993e-263652d27795
Android学习笔记
浏览量:368244
5f40a095-b33c-3e8e-8891-606fcf3b8d27
iBatis开发详解
浏览量:189379
B272a31d-e7bd-3eff-8cc4-c0624ee75fee
Objective-C学习...
浏览量:99952
社区版块
存档分类
最新评论

Objective-C学习笔记五:选择结构一

阅读更多
    接上文
    选择结构,或者称为分支结构,是编程语言中程序结构的一种,它表示进行一种判断,比如进行循环的时候判断何时终止循环。
    选择结构语句包括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
2
2
分享到:
评论
2 楼 sarin 2013-01-05  
zwlfyl 写道
写得很不错,之前看到IOS的语法就头痛,看了你的文章,由浅入深,茅塞顿开!

谢谢

欢迎继续关注本系列
1 楼 zwlfyl 2013-01-03  
写得很不错,之前看到IOS的语法就头痛,看了你的文章,由浅入深,茅塞顿开!

谢谢

相关推荐

    Objective-c学习笔记

    Objective-C是一种基于C语言的面向对象编程语言,它是苹果公司Mac OS X和iOS操作系统的主要开发语言。Objective-C的特性使其成为构建Cocoa框架应用程序的理想选择。以下是对Objective-C关键概念的详细解释: 1. **...

    objective-c学习笔记

    这篇“Objective-C学习笔记”旨在帮助初学者理解并掌握这种强大的编程工具。 一、Objective-C基础 1. 类与对象:Objective-C中的所有操作都是基于类的,类是对象的模板,而对象是类的实例。理解类和对象的概念是...

    Objective-C 基础语法学习项目

    根据给定的学习笔记,我们将从以下几个方面深入探讨Objective-C的基础语法: 1. **基本概念介绍**:包括类、对象、方法等基本概念。 2. **Objective-C核心类型**:如`NSString`、`NSArray`、`NSDictionary`。 3. **...

    Objective-C 学习笔记

    Objective-C 是一种面向对象的编程语言,起源于20世纪80年代,由Bard Cox发明,后来在NeXTSTEP操作系统中得到广泛应用。NeXT公司由Steve Jobs创立,并在1996年被苹果公司收购,Objective-C也随之成为苹果操作系统的...

    Objective-C学习资料(内置学习笔记,各内容源码)

    这份“Objective-C学习资料”包含了内置的学习笔记和各内容源码,是作者在近两个月的学习过程中整理出来的成果,旨在为初学者提供有价值的指导。 首先,让我们深入了解一下Objective-C的基本概念。Objective-C是在...

    objective-c编程入门学习笔记

    Objective-C中的打印输出主要通过`NSLog`函数完成,其用法类似于C语言的`printf`函数,但是使用`@`符号作为字符串的前缀。 ```objective-c NSLog(@"Hello, World!"); ``` ##### 2. 变量与运算 Objective-C支持多种...

    Mac编程入门资料(Objective-C)

    1. HelloWorld:创建第一个Objective-C程序,了解基本的语法和工程结构。 2. 简单应用:尝试开发一个简单的macOS或iOS应用,如计时器、计算器等,加深对语言特性的理解。 3. 深入学习:逐步学习Cocoa或Cocoa Touch...

    Objective-C基础教程第二版

    **Objective-C**是一种面向对象的编程语言,它在C语言的基础上增加了面向对象的功能,并且是开发iOS应用的主要语言之一。尽管Swift已经成为苹果官方推荐的新一代编程语言,但Objective-C仍然拥有大量的代码库和丰富...

    objective c学习笔记

    Objective-C是一种简单的...Objective-C通过提供类定义,方法以及属性的语法,还有其他可以提高类的动态扩展能力的结构等,扩展了标准的ANSI C语言。类的语法和设计主要是基于Smalltalk,最早的面向对象编程语言之一。

    object-c学习笔记

    这篇学习笔记主要涉及了Objective-C的基础知识,包括对象创建、类的结构、文件导入、实例变量、接口与实现、内存管理和属性。 1. **对象创建**: - `string`方法创建的字符串对象是自动释放的,意味着系统会在适当...

    objective-c的总结

    Objective-C是在C语言基础上扩展的,因此它保留了C语言的所有特性,如变量、函数、控制结构等。它的主要扩展是增加了消息传递机制和类的概念,这使得它成为一种面向对象的语言。消息传递是Objective-C的核心,通过向...

    Objective-C的入门学习笔记

    Objective-C 是苹果平台下开发 iOS 和 macOS 应用的主要编程语言之一,虽然 Swift 已经成为新宠,但Objective-C 的重要性仍然不可忽视,尤其是因为许多现有的类库和框架仍由 Objective-C 编写。以下是一份关于...

    iphone OBJ-C入门笔记

    学习 Objective-C,不仅要掌握语法,还要理解其运行时系统和苹果提供的框架,如 Foundation 框架,这些都对于开发 iOS 和 macOS 应用至关重要。在实践中,不断编写代码和调试将是深化理解的最佳途径。

    一年ios开发的工作总结笔记

    - **知识点**: `CGRect` 是一个用于表示矩形的数据结构,包含坐标和尺寸信息。 - **常用方法**: - `CGRectMake`: 创建一个指定位置和大小的矩形。 ```objective-c CGRect frame = CGRectMake(origin.x, origin.y,...

    iPad程序设计

    - **目标:** 通过这个过程熟悉iOS开发环境,包括Xcode IDE、Swift或Objective-C语言等。 **2.2 移植到iPad** - **理解API差异:** 虽然许多API在iPhone和iPad上相同,但也有部分特定于某一平台的功能。 - **重新...

    资源是object-c介绍,同时展现示意demo源码,供大家参考学习

    ",展示如何创建一个Objective-C程序的基本结构。 2. **对象创建与交互**:演示如何创建类,实例化对象,并通过消息传递调用方法。 3. **属性(Property)与存取器(Accessor)**:展示如何声明属性,使用`@property...

    swift快速学习笔记1

    4. 兼容Objective-C:Swift允许开发者在同一个项目中同时使用Objective-C和Swift编写的代码,方便了从Objective-C语言向Swift的过渡。 知识点三:Swift基础结构 Swift的基础结构包含了多种数据类型,包括但不限于:...

    Objective学习笔记

    根据提供的文件信息,我们可以整理出一系列关于Objective-C的基础知识点,主要涵盖了语法结构、变量类型、内存管理、类与对象操作等方面。以下是对这些知识点的详细解释: ### 1. 类的基本结构 - **声明...

    基于C语言的学习笔记(附代码)

    【基于C语言的学习笔记(附代码)】 C语言是一种强大的、高效的编程语言,广泛应用于操作系统、嵌入式系统以及各种软件开发。这份学习笔记涵盖了C语言的基础、高级、系统和工具四个部分,旨在帮助读者全面理解和...

Global site tag (gtag.js) - Google Analytics