爬爬爬之路:C语言(三) 入门篇3

来源:互联网 发布:淘宝宾卡达手表怎么样 编辑:程序博客网 时间:2024/06/10 02:36
循环结构:在满足特定条件(循环条件)下, 反复执行一个语句(循环体)

while  do-while for
三种格式:
while(循环条件){
     循环体;(反复执行)
}
执行顺序: 先判断循环条件, 如果成立, 然后执行循环体, 再判断循环条件, 成立就执行...反复… 直到判断循环条件不满足 退出循环


do{
     循环体;
}while(循环条件);
执行顺序: 先执行一遍循环体, 再判断循环条件, 如果成立, 继续执行, 然后判断... 反复… 直到判断循环条件不满足 退出循环


for( 循环变量初始值 ; 循环条件; 循环增量){
     循环体;
}
用三种格式完成输出整数 1到100;
        int i =1;
        while (i <= 100) {  //在执行之前判断条件
            printf("%d\n",i);
            i++;
        }
       
        int j = 0;
        do {              //在执行后判断条件
            j++;
           
printf("%d\n",j);
        }
while (j <100);
       
       
for (int k = 1; k <=100; k++) {   //执行前判断条件,好处在于 判断变量不需要事先定义, 节省空间
           
printf("%d\n",k);
        }
break.
用在switch语句中
作用:跳出switch
在循环体中
作用:跳出本层循环(注意: 只跳一层)
具体伪代码示意如下:
     while(条件1) {  //while1
          …;  //语句1
          while(条件2) {  //while2
                …;   //语句2
               break;
               …;    //语句3
          }
          …;语句4
     }
这里break 只结束了while2    while1继续执行  按照语句执行顺序:   语句1  语句2  break  语句4 (语句3 不执行)


continue
作用:结束本次循环, 进行下一次循环;

break和continue的区别:
break:      在其所在的循环体中, 结束本次循环后, 之后的循环都不执行
continue: 在其所在的循环体中, 结束本次循环后, 之后的循环继续执行
continue 值得注意的是, 若循环增量语句在continue语句后, 可能会导致循环增量语句不执行(while do-while语句尤其)  而导致死循环

for最常⽤,通常⽤于知道循环次数的循环。
while也很常⽤,通常⽤于不知道循环次数的循环。
do…while不是特别常⽤,通常⽤于需要先执⾏⼀次的循环。
break跳出本层循环,continue结束本次循环。通常与if连⽤

循环嵌套:
基础应用: 打印九九乘法表

    printf("九九乘法表:");
    for (int i = 0; i <9; i++) {
        for (int j = 0; j <= i; j++) {
              printf("%d * %d = %-2d  ", i + 1, j +1,(i +1) * (j +1));
        }
        printf("\n");
    }


随机数 arc4random();    //此随机数非C语言的随机数方法, 是OC中的随机数方法
arc4random()的返回值是一个u_int32_t 也就是无符号32位整型
所以arc4random()的生成值范围在 0 ~ 0xFFFFFFFF
可以通过 (float)arc4random() / 0xFFFFFFFF 获得一个随机小数

对于求取某一区间内的数(包括最大数最小数本身)  (数学表达式:  [小数, 大数] ) 的求取公式如下:
int number = arc4random() % (大数 - 小数 + 1) + 小数;


变量的作用域: 所处最内层的大括号里,声明之后的任意地方
1.先声明才能使用
2.出了自身存在的大括号  就失去作用

用while语句 循环n次:
写法1:

int n = 10;
while(n > 0) {
     ;//循环体
     n—-;
}
写法2:
int n = 10;
int i = 0;
while(i < n) {
     ;//循环体
     i++;
}
两种写法结果相同, 但是从变量的作用域考虑, 第二种写法定义了一个循环体外部变量i, 循环结束以后就无他用. 这样在变量i 的作用域里 就浪费了变量i的空间(除非变量i在之后还有复用).
所以建议第一种写法.

0 0
原创粉丝点击