Objective-C学习笔记(十)——循环语句for和do-while的使用

在OC中。除了while这样的循环方式外,还有另外for循环和do-while循环。它们在不同的业务逻辑下会有不同的作用。能够和C语言和Java对照着学习。

(一)代码一:

int main(int argc, const char * argv[]) {
    @autoreleasepool {

        for (int i = 0; i < 5; i++) {
            NSLog(@"你好,i = %d",i);
        }

    }
    return 0;
}

输出结果:

结果分析:for循环的循环变量放到了for()内部,for循环的单个变量各自是变量定义,变量范围。变量改变值。一般for循环用在循环次数已经清楚的条件下。输出结果符合我们的预期。

(二)代码二:

int main(int argc, const char * argv[]) {
    @autoreleasepool {

                int i = 0;
                do{
                    i++;
                    NSLog(@"你好,i=%d",i);

                }while (i<5);

    }
    return 0;
}

输出结果:

结果分析:do-while和其它循环的差别在于do-while是先进行一次循环内部的代码,然后再进行循环条件的推断。

循环条件满足,然后再进行循环。  while循环和for循环都是先推断循环条件是否满足。若不满足就不运行循环代码了。do-while的循环若不满足,至少会运行一次循环体。

这就是最大的差别。请看下一个代码:

(三)代码三:

int main(int argc, const char * argv[]) {
    @autoreleasepool {

                int i = 0;
                do{
                    i++;
                    NSLog(@"你好,i=%d",i);

                }while (false);

    }
    return 0;
}

输出结果:

结果分析:循环条件为false,可是也运行了一次循环体。能够依据业务需求进行选择循环类型。

时间: 2024-12-28 10:38:09

Objective-C学习笔记(十)——循环语句for和do-while的使用的相关文章

Java基础学习笔记 -- 8(循环语句)

1. 循环结构 循环三要素:A.循环变量初值  B.循环条件(boolean值)  C.循环变量增量(自增或者自减) 1) while循环 语法:while ( boolean表达式 ) { 语句块: } 执行:当while后面的表达式成立,则执行语句块内容,直到boolean表达式为false,不再继续执行. while循环是先判断后执行,有可能一次都不会执行. 案例17: 2) do...while循环 语法:do { 语句块: } while ( boolean表达式 ); 执行:先执行一

JAVA学习笔记(四) - 循环语句

while循环 /* * while循环 * 循环变量,可以控制循环次数. */ public class Test { public static void main(String[] args) { int count = 5; while(count > 0) { System.out.println("Hello World " + count--); } System.out.println(count); System.out.println("hahahh

第十七篇:实例分析(3)--初探WDDM驱动学习笔记(十)

续: 还是记录一下, BltFuncs.cpp中的函数作用: CONVERT_32BPP_TO_16BPP 是将32bit的pixel转换成16bit的形式. 输入是DWORD 32位中, BYTE 0,1,2分别是RGB分量, 而BYTE3则是不用的 为了不减少color的范围, 所以,都是取RGB8,8,8的高RGB5, 6, 5位, 然后将这16位构成一个pixel. CONVERT_16BPP_TO_32BPP是将16bit的pixel转换成32bit的形式 输入是WORD 16BIT中

Accelerated C++学习笔记3—&lt;循环和计数&gt;

第2章 循环和计数 本节主要利用改进输出问候语的程序来改进如何支持循环和条件分支的. 1.使用循环输出一个周围带框架框住的问候语,且用户自己提供在框架与问候语之间的空格的个数. <span style="font-family:KaiTi_GB2312;">// lesson2_1.cpp : 定义控制台应用程序的入口点. //功能:使用循环 //时间:2014.5.8 #include "stdafx.h" #include "iostrea

python学习笔记十——异常处理

1.try: command except 错误类型,记录错误信息变量: command finally: command try...finally的用处是无论是否发生异常都要确保资源释放代码的执行.一般来说,如果没有发生错误,执行过try语句块之后执行finally语句块,完成整个流程.如果try语句块发生了异常,抛出了这个异常,此时就马上进入finally语句块进行资源释放处理.如下从几个细节讨论finally的特性. 1).try中的return: 当在try语句块中含有return语句

Linux System Programming 学习笔记(十) 信号

1. 信号是软中断,提供处理异步事件的机制 异步事件可以是来源于系统外部(例如用户输入Ctrl-C)也可以来源于系统内(例如除0) 内核使用以下三种方法之一来处理信号: (1) 忽略该信号.SIGKILL和SIGSTOP不能被忽略. (2) 捕捉并且处理该信号.The kernel will suspend execution of the process's current code path and jump to a previously registered function. SIGK

Swift学习笔记十四:构造(Initialization)

类和结构体在实例创建时,必须为所有存储型属性设置合适的初始值.存储型属性的值不能处于一个未知的状态. 你可以在构造器中为存储型属性赋初值,也可以在定义属性时为其设置默认值.以下章节将详细介绍这两种方法. 注意: 当你为存储型属性设置默认值或者在构造器中为其赋值时,它们的值是被直接设置的,不会触发任何属性观测器(property observers). 一.基本语法 class Human{ var name :String init(){ name = "human" } init(n

《Hibernate学习笔记十》:多对多关联关系详解

<Hibernate学习笔记十>:多对多关联关系 前面介绍了一对一.多对一和一对多的关联关系在Hibernate应如何实现,这篇博文就来介绍下最后一种关联关系:多对多.多对多关联关系在我们现实生活中的例子实在是太多太多,最典型的就是老师和学生的例子:一个老师可以教多个学生,而一个学生又可以被多个老师来教. 了解一点数据库的我们都知道,在数据库中表示多对多的关联关系,是借助于中间表来解决的. 如下: 还是和以往的思路一样,每一种关联关系都分为单向关联和双向关联,我们每种都会进行介绍,对于单向和双

《Hibernate学习笔记十二》学生、课程、分数关系的设计与实现

<Hibernate学习笔记十二>学生.课程.分数关系的设计与实现 这个马士兵老师的Hibernate视频学习的一个题目,这里面要用到多对多.多对一的关联关系以及联合主键,因此觉得挺好的,自己写篇博文来记录下. 先考虑数据库表 1.学生表:为简单起见,只考虑了学生id和学生姓名,其中id为主键 2.课程表:为简单起见,只考虑了课程id和课程名称,其中id为主键 3.分数表 分数表有两种解决方案 3.1 第一种为:使用联合主键:student_id 和 course_id 3.2 第二种:不使用

Swift学习笔记十二:下标脚本(subscript)

下标脚本就是对一个东西通过索引,快速取值的一种语法,例如数组的a[0].这就是一个下标脚本.通过索引0来快速取值.在Swift中,我们可以对类(Class).结构体(structure)和枚举(enumeration)中自己定义下标脚本的语法 一.常规定义 class Student{ var scores:Int[] = Array(count:5,repeatedValue:0) subscript(index:Int) -> Int{ get{ return scores[index];