循环结构 : while循环   do...while循环(几乎不用)      for循环(使用最多)

特点:在给定的条件成立时,反复执行某程序段,直到条件不成立为止。

给定的条件为循环条件,反复执行的程序段位循环体。

一、while循环

while(条件表达式){

  循环语句;

}

#import <Foundation/Foundation.h>

int main(int argc, const char * argv[])
{ int i = ;
while (i<) {
printf("hello,word!\n");
i++;
}
return ;
}
 #import <Foundation/Foundation.h>

 int main(int argc, const char * argv[])
{
//用while打印出1~100之间7的倍数。
// int i = 1,d;
// while (i<=100) {
// d = i%7;
// if (d == 0 ) {
// printf("%d\t",i);
// }
//
// i++;
// }
//用while打印出1~100之间个位为7的数
// int i = 1,d;
// while (i<=100) {
// d = i%10;
// if (d == 7 ) {
// printf("%d\t",i);
// }
//
// i++;
// }
//用while打印出1~100之间⼗十位为7的数
// int i = 1,d;
// while (i<=100) {
// d = i/10;
// if (d == 7 ) {
// printf("%d\t",i);
// }
//
// i++;
// }
//用while打印出1~100之间不是7的倍数并且 不包含7的数
int i = ,d,a,b;
while (i<=) {
d = i/;
a = i%;
b = i%;
if (d != &&a!= &&b!=) {
printf("%d\t",i);
} i++;
} return ;
}

随机数 arc4random()-----返回一个伪随机数

//得到0到30之间的数
printf("%d",arc4random()%31);

//得到10到40之间的数

printf("%d",arc4random()%31+10);

取(m,n)之间的随机数  printf("%d",arc4random()%(n-m+1)+m);

    // 用户从控制台输⼊入⼀一个n,⽤用while打印n个随机数, 范围为[30~70],找出n个随机数中的最⼤大值
#import <Foundation/Foundation.h> int main(int argc, const char * argv[])
{
int n,i,max=,b;
printf("输入一个数n:");
scanf("%d",&n);
while (i<n) {
b = arc4random()%+;
printf("%d ",b);
if (max < b) {
max = b;
}
i++; }
printf("\nmax=%d",max);
return ;
}

break    在switch语句中,break是跳出switch语句块,执行switch语句块下面的语句

在循环中,break主要作用是跳出本层循环,执行循环后面的语句,通常break语句总是与if语句联在一起

找bug:1.打断点2.看log日志

continue  语句一般会跳过某次循环的部分内容,继续下一次循环,不会结束循环。

 //#import <Foundation/Foundation.h>
//
//int main(int argc, const char * argv[])
//{
// int i=0;
//
// while (i<10) {
// printf("%d ",i);
//
// i++;
// if (i == 8) {
// break;
// }
//
// }
//
// return 0;
//}//输出0 1 2 3 4 5 6 7
#import <Foundation/Foundation.h> int main(int argc, const char * argv[])
{
int i=;
while (i<) {
if (i>&&i<=) {
i++;
continue;
}
printf("%d ",i);
i++;
}
// while (i<10) {
// if (i == 0||i == 9)
// printf("%d ",i);
// i++;
// } return ;
}//输出0 9

二、do...while

do{

循环语句;

}while(条件表达式);

执行循环时,先执行循环体,在判断循环条件,直到条件不满足的时候,循环结束。

至少循环一次。

三、for循环

for(循环变量初始化;循环条件;循环增量){

  语句(循环体);

}

循环条件为真的时候,执行循环体。通常给循环变量加条件来控制循环的结束。

 #import <Foundation/Foundation.h>

 int main(int argc, const char * argv[])
{ for (int i=; i<; i++) {
if (i/!=&&i%!=&&i%!=) {
printf("%d ",i);
}else printf("过 "); } return ;
}//逢7过
 //输出三排随机数10-30,每排三个数
/*
#import <Foundation/Foundation.h> int main(int argc, const char * argv[])
{ for (int i = 1; i<4; i++) {
for (int j=0; j<3; j++) {
printf("%d ",arc4random()%21+10);
}
printf("\n");
} return 0;
}*/
//输出三排随机数,第一排一个数,第二排两个数,第三排三个数,随机数范围10-30
#import <Foundation/Foundation.h> int main(int argc, const char * argv[])
{ for (int i = ; i<; i++) {
for (int j=; j<=i; j++) {
printf("%d ",arc4random()%+);
}
printf("\n");
} return ;
}
//输出乘法口诀表
/*
#import <Foundation/Foundation.h> int main(int argc, const char * argv[])
{ for (int i = 1; i<=9; i++) {
for (int j=1; j<=i; j++) {
printf("%d*%d=%d\t",i,j,i*j); }
printf("\n");
} return 0;
}*/
//打印三个数字(0-9)的组合可能(组合成三位数)
#import <Foundation/Foundation.h> int main(int argc, const char * argv[])
{ for (int i = ; i<=; i++) {
for (int j=; j<=; j++) {
for (int k =; k<=; k++) {
printf("%d%d%d ",k,i,j);
} } } return ;
}

总结:

循环是程序开发最重要的组成部分,充分理解循环的执行过程是学好以后课程的保障

for循环最常⽤用,通常⽤用于循环次数已知的情形

while循环也很常⽤用,通常⽤用于不知道循环次数的情形

do...while不是特别常⽤用,通常⽤用于需要先执⾏行⼀一次的情形

三种循环⼀一般都能相互转化

iOS学习笔记---C语言第三天的更多相关文章

  1. iOS学习笔记---oc语言第三天

    继承.初始化方法 一.继承 继承的上层:父类  继承的下层:子类 继承是单向的,不能相互继承 继承具有传递性:A继承于B,B继承于C,A具有B和C的特征和行为 子类能继承父类全部的特征和行为(私有变量 ...

  2. IOS学习笔记06---C语言函数

    IOS学习笔记06---C语言函数 --------------------------------------------  qq交流群:创梦技术交流群:251572072              ...

  3. IOS学习笔记07---C语言函数-printf函数

    IOS学习笔记07---C语言函数-printf函数 0 7.C语言5-printf函数 ------------------------- ----------------------------- ...

  4. iOS学习笔记---oc语言第一天

    第一讲 初始类和对象 c语言的超集,允许在oc中使用c语言源代码.编译器兼容c语言程序 具备完善的面向对象特性 包含一个运行时系统 类库丰富 面向对象编程 oop 面向对象语言:c++  java   ...

  5. iOS学习笔记---oc语言第五天

    字典,数组 ,集排序 一.字典类 存储以下数据 name:张三; sex:男;age:18 film:风暴; playcount:10000次;price:60元 字典类用于保存具有映射关系(key- ...

  6. iOS学习笔记---oc语言第四天

    字符串 数组 一.使用苹果帮助文档 学会使⽤用苹果帮助⽂文档是开发者的⼀一项技能 Inherits from 继承⾃自 Conforms to 遵循什么协议 Framework 属于哪个框架 Avai ...

  7. iOS学习笔记---c语言第八天

    指针 首先将变量a的地址存放在另一个变量中,比如存放在变量b中,然后通过变量b来间接引用变量a,间接读写变量a的值.用来存放变量地址的变量,就称为"指针变量" int *p=nul ...

  8. iOS学习笔记---c语言第二天

    一.bool布尔类型    c语言没有bool类型,oc里有bool类型 是一种非真即假的数据类型,布尔类型的变量只有yes和no两个值.yes表示表达式是真,no表示表达式是假. 在c语言中认为非0 ...

  9. iOS学习笔记30-系统服务(三)蓝牙

    一.蓝牙 随着蓝牙低功耗技术BLE(Bluetooth Low Energy)的发展,蓝牙技术正在一步步成熟,现在的大部分移动设备都配备有蓝牙4.0,相比之前的蓝牙技术耗电量大大减少. 在iOS中进行 ...

随机推荐

  1. groupadd命令详解(实例)

     groupadd命令详解(实例)  1.作用groupadd命令用于将新组加入系统. 2.格式groupadd [-g gid] [-o]] [-r] [-f] groupname 3.主要参数-g ...

  2. javaMail创建邮件和发送邮件总结

    (注: 本文是参考http://www.cnblogs.com/xdp-gacl/p/4216311.html. 感谢博主的精彩的描述) 一, 前期的准备 1, 导入 mail.jar 二, 操作步骤 ...

  3. 新手必看,老鸟绕道–LAMP简易安装

    导读 LAMP是企业中最常用的服务,也是非常稳定的网站架构平台.其中L-指的是Linux,A-指的是Apache,m-指的是mysql或者marriDB,p-php.相信大家对这些都已经非常熟悉了,但 ...

  4. jquery之ajax之$.get方法的使用

    jquery对ajax进行了封装,非常方便. 自己用$.get()方法写了个小demo,包括客户端和服务端. 客户端: <!DOCTYPE html> <html> <h ...

  5. java语句类型

    public class Test { public static void main(String[] args) { System.out.println("Test is ok&quo ...

  6. android程序打包成APK

    1.下载ant(从官网上下载没有bin目录,可以直接在百度上搜APACHE-ANT-1.9.4-BIN.ZIP) 2.解压到C盘根目录(也可以是其他盘) 3.修改环境变量 ANT_HOME    C: ...

  7. Xtreme Toolkit Pro 免费下载地址

    Xtreme Toolkit Pro 是针对Windows程序员的一套先进的用户界面套包,强大的功能可使您的应用程序具有专业的.现代感的外观. Xtreme Toolkit Pro 由8个专业级的构件 ...

  8. (spring-第10回【IoC基础篇】)InstantiationStrategy--实例化Bean的第三大利器

    Bean的实例化整个过程如下图: : 其中,BeanDefinition加入到注册表中,并由BeanFactoryPostProcessor的实现类处理后,需要由InstantiationStrate ...

  9. simtrace之探秘SIM卡中的世界

    0×00 关于SIM卡 众所周知SIM卡是一张插在手机上的小卡,其全称为Subscriber Identity Module 客户识别模块.不过,这个世界上并没有多少人知道SIM卡中的操作系统是基于j ...

  10. Win8远程[你的凭据不工作]的解决办法

    用户名前加你的计算机名称就可以了....win8也会有这样的问题,有点匪夷所思了......