//---------循环结构-----------// 
循环结构是程序中一种很重要的结构。 
其特点是,在给定条件成立时,反复执行某程序段, 直到条件不成立为止。给定的条件称为循环条件, 
反复执行的程序段称为循环体。 
循环结构简单来说就是:循环是一次又一次的执行相同的代码块 
 
while语句; 
do-while语句; 
for语句; 
 
一般来说一个循环需要以下几部分构成: 
1)循环控制条件 循环退出的主要依据,来控制循环到底什么时候退出 
2)循环体      循环的过程中重复执行的代码段 
3)能够让循环结束的语句(递增、递减、真、假等) 能够让循环条件为假的依据,否则退出循环 
 
//---------while循环-----------// 
while ( 条件表达式 ) 
{ 
    语句1; 
    语句2; 
    ....(让条件表达式为假) 
} 
 
用while语句计算从1加到100 
编程思想 
1)定义变量 
2)循环条件 
3)进行累加 
 
1)while循环的特点: 
如果while中的条件一开始就不成立,那么循环体中的语句永远不会被执行 
 
2)while语句的语义是: 
如果条件成立,就会执行循环体中的语句“循环体”。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环 
 
 
 
产生随机数   1~n以内的随机数  导入头文件 
arc4random_uniform(n);        0~n-1 
arc4random_uniform(n)+1;      1~n 
arc4random_uniform(n-m+1)+m;  m~n 
 
 
//---------while的死循环-----------// 
死循环:就是一直都执行循环体中的代码,不会退出 
while(条件); 
1)不知道要循环的次数的时候使用最佳 常常妙用死循环 
2)在某个范围內查找满足条件的值 
 
 
 
//---------while值得注意的地方-----------// 
1、死循环:任何数值都真假性 
while (-1) 
{ 
    printf("死循环\n"); 
} 
 
2、当一个变量与一个常量进行== 或 != 的时候,通常把常量写在前面 
int num = 3; 
while (3 == num) { 
    printf("num = %d\n",num); 
    num++; 
} 
 
3、while 后如果只有一条语句它可以省略大括号 
 
1)空语句它也是一条语句 
 
2)while小阔号后面不可以直接写分号,分号就是一句语句的结束 
 
int num = 0; 
while (num < 3); { 
    printf("num = %d\n",num); 
    num++; 
} 
 
4、作用域:内部代码块中定义的变量不可以在外边代码块中访问 
while (1 < 3) { 
    int a = 0; 
} 
printf("a = %d\n",a); 
 
5、作用域紊乱 
while (1 < 3) int num = 5; 
 
6、最简单死循环 
while (1); 
 
//---------do-while-----------// 
 
while(条件){ 
    语句块; 
} 
当型循环:当条件满足的时候,再去执行循环体 
 
 
do { 
    语句1; 
    语句2; .... 
} while ( 条件 ); 
直到型循环:先执行循环体,然后判断条件,直到条件为假就结束 
 
1)do...while语句的语义 
2)do-while循环的特点: 
不管while中的条件是否成立,循环体中的语句至少会被执行一遍 
 
对比: 
while    是先判断再执行 
do-while 是先执行再判断 
当循环条件第一次判断不为假的时候,while和do-while执行的次数相同,为假,do-while会执行一次 
 
//---------for循环-----------// 
一般形式: 
for(表达式1;表达式2;表达式3) {语句;} 
 
for循环执行过程 
(1) 先求解表达式1。 
(2) 求解表达式2,若其值为真(值为非0),则执行for语句中指定的内嵌语句,然后执行下 面 第(3)步。若为假(值为0),则结束循环,转到第(5)步。 
(3) 求解表达式3。 
(4) 转回上面第(2)步骤继续执行。 
(5) 循环结束,执行for语句下面的一个语 
 
for语句常见的形式: 
for(循环变量赋初值;循环条件;循环变量增值) 
for(int i = 0;i<10;i++){ 
    语句块; 
} 
 
//---------for循环值得注意的地方-----------// 
1)表达式省略(三个表达式都可以省略) 
如:for(; ;){ 
    ..... 
}语句相当于while(1) 语句 
 
2)循环控制无关的任意表达式 
表达式1和表达式3可以是一个简单的表达式,也可以是逗号表达式,即包含一个以上的简单表达 式,中间用逗号间隔。 
for(i=1;i<=100;i++,i++) 
 
 
//---------for循环的嵌套-----------// 
 
//第一种理解方式:把打印一行的代码,执行了5次 
for (int j=0; j<5; j++) { 
    //打印一行 * ,有5个 
     
    for(int i=0;i<5;i++){ 
        printf("*\t"); 
    } 
     
    printf("\n"); 
} 
 //外层控制行数,里层控制列数 
 
 
//---------关于图形打印以及99乘法表-----------// 
1.  加横杠  填补空格的位置 
 
* 
*  * 
*  *  * 
*  *  *  * 
*  *  *  *  * 
 
 
-  -  -  -  * 
-  -  -  *  * 
-  -  *  *  * 
-  *  *  *  * 
*  *  *  *  * 
 
//------------------ 
 
----* 
---*** 
--***** 
-******* 
********* 
 
//------------------ 
 
*  *  *  *  * 
*  *  *  * 
*  *  * 
*  * 
* 
 
 
*  *  *  *  * 
-  *  *  *  * 
-  -  *  *  * 
-  -  -  *  * 
-  -  -  -  * 
 
9*9乘法表的执行思路。 
 
1、双重for循环 
2、外层for控制行数 9 
3、里层for循环控制列数 j<=i 
for (int i = 1; i<=9; i++) { 
     
     
    for (int n = 1; n<=i; n++) { 
//值得注意的地方 
        printf("%2d÷%d=%d ",i*n,n,i); 
         
    } 
     
     
    printf("\n"); 
} 
 
//---------break-----------// 
break和continue语句都可以用在循环中,用来跳出循环(结束循环); 
break语句还可以用 在switch语句中,用来跳出switch语句。 
 
当break语句用于 
do 
while、 
for、 
while循环语句中时,可使程序终止循环而执行循环后面的语 
句,通常break语句总是与while语句联在一起,即满足条件时便跳出循环。 
注意: 
// if(表达式)else{ ...... break;......} 
1)break语句对if-else的条件语句不起作用; 
2)在多层循环中,一个break语句只向外跳一层。 
 
//---------continue-----------// 
continue语句的作用是跳过循环体中剩余的语句而继续下一次。 
continue语句只用在 for、while、do-while等循环体中,常与if条件语句一起使用,用来加速循环。 
 
while的用法: 
while(表达式1){ 
    ...... 
    if(表达式2) break; 
    ...... } 
 
continue的用法: 
while(表达式1){ 
    ...... 
    if(表达式2) continue; 
    ...... } |