循环结构 : 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. jquery之getJSON方法获取中文数据乱码解决方法

    最近公司做的东西要用到js,感觉js太繁琐,所以自己学起了jquery,发现jquery确实强大.在学到jquery ajax的时候(用的工具是eclipse),发现$.getJSON()方法请求服务 ...

  2. JQuery判断checkbox是否选中-批量

    在html的checkbox里,选中的话会有属性checked="checked". 如果用一个checkbox被选中,alert这个checkbox的属性"checke ...

  3. jquery判断多选框是否选中

    if($("#xieyi").is(":checked")){ alert('选中'); }else{ alert('没有选中') }

  4. Spring中的Jdbc事务管理

    Spring提供了对事务的声明式事务管理,只需要在配置文件中做一些配置,即可把操作纳入到事务管理当中,解除了和代码的耦合. Spring声明式事务管理,核心实现就是基于Aop. Spring声明式事务 ...

  5. 可以创建专业的客户端/服务器视频会议应用程序的音频和视频控件LEADTOOLS Video Conferencing SDK

    LEADTOOLS Video Streaming Module控件为您创建一个自定义的视频会议应用程序和工具提供所有需要的功能.软件开发人员可以使用Video Streaming Module SD ...

  6. fdisk分区

    查看文件系统: # df -hFilesystem Size Used Avail Use% Mounted on/dev/sda1 20G 1.1G 18G 6% /tmpfs 1.9G 0 1.9 ...

  7. git——学习笔记(三)分支管理

    一.创建.合并分支 每次提交,git都往后走一格,串成一跳时间线,head指向的是分支,分支指向提交.master是主分支,dev是另一条分支,分支就像指针一样,合并.删除分支时,修改的都是指针,工作 ...

  8. Java基础毕向东day02

    1. 常量 null 等特殊 2.标识符 数字-字母-下划线,数字不能开头 3.二进制 1> 二进制计算方法. 2>常用二进制. 1        1      0       0   1 ...

  9. c++父类指针强制转为子类指针后的测试(帮助理解指针访问成员的本质)(反多态)

    看下面例子: #include "stdafx.h" #include <iostream> class A {  //父类 public: void  f()   / ...

  10. VM虚拟机中Ubuntu无法连接网络

    之前Ubuntu是可以上网的,但是今天打开后发现上不了网了,经过一番折腾,弄好了,记录下. 方案一:将网络连接设置为自定义NAT VM ->设置-> 硬件->网络适配器 这么已修改就 ...