C 语言循环结构

C 语言循环结构 — 解读

      C语言中的循环结构又称重复结构,是对于相似数据执行 相似操作提供的基本结构,也是很多计算机语言中的基础语法
       接下来安语会带你去详细分析循环语法的内涵。

1.while( 表达式 ){ 执行语句 };

      这是while循环 ,它的执行会先判断表达式的正确与否。当表达式正确时,才会执行 { } 中的执行语句。如果表达式一直正确就会成为死循环比如:

while(1){
  printf("I have a cat");
}
//这个程序会一直输出'I hava a cat'语句.不会停止;

     如果此时将while的表达式换成 k++ 或者++k 并且让他们小于一个数 ;

int k=1,n=10; 
while(k++<=n){
  printf("%d ",k);
}
//此时将k输出你会看到控制台打印: 2 3 4
 //5 6 7 8 9 10 11;也就是说循环了10次
//如果换成下面的代码;
int k=1,n=10; 
while(++k<=n){
  printf("%d ",k);
}
//此时将k输出你会看到控制台打印: 2 3 4
 //5 6 7 8 9 10;也就是说循环了9次
//这是问什么呢?? 很多初学者可能
不明白  那个傻子  也不知道。。

       其实最大的不一样在于++k;k++;语句本身的执行 ,他们对于自身都是加一但是一旦放到表达式中就显得不一样了 例子如下;

 int a=1, b=1, c, d;
 c = a++;
 d = ++b;
 printf("%d %d",  c, d);
 //此时我输出了 c,d 他们的值
 //是 c=1,d=2;
 //结论   ++b是先b自加,在赋
 //值给d    a++是先把a的值赋给c在去自加的;

       回到之前的 while语句中 第一个 因为k++是因为先去判断再去自加的所以k可以输出 11 也就是循环10次,而后一个 ++k是因为先自加再去判断的所以最大输出10 也就是循环9次;
       嘿嘿 安语知道 这个可能比较难因为这是程序的语法 但是 明白了这个后面的循环会简单很多 ;
2. do{ 执行语句 } while( 表达式 );
        说起这个我记得我当初 也没怎么搞明白,因为 她可以解决的 ,她的姐姐也可以而且她姐姐比她漂亮多了 ;
她的执行 。 是先do后面的{ 执行语句 } 再去判断 while( ) 里面的表达式。
3. for(表达式1;表达式2;表达式3){ 执行语句 }
       这个应该是最长用的 ,因为她最美 最便捷,就像你最美一样 嘿嘿。
她的执行是这样的 , 先执行表达式1(表达式1 是初始条件 只执行一次 )        后面会执行 表达式2(表达式2是循环的 条件语句 每一次执行 { 执行语句} 前都会执行 表达式2)       再然后她会执行{ 执行语句 } 很多人会误解为先执行表达式3 实际上最后才会执行表达式 3( 表达式3 她对循环做出了一些 调整)。

    //一下是一些常见 的 for死循环
/*    例1  */
    int i = 1;
    for(;i<2;){
        printf("aaa");
    }
/*   例2  */
  int i = 1;
  for(;;i=1){
    printf("aaa");
   }
   /*   例3  */
  int i = 1;
  for(;;){
    printf("aaa");
   }
  /*   例4  */
  for(int i=1;;){
    printf("aaa");
   }
 // 这四个例子中全都是死循环;

       结论: for( ; ; ){ }中的表达式1 ,2 ,3并不是必须的但是 如果for()循环中有这些东西 仅仅按照 我写的 对应作用推算就行了;
上述的这些循环在很多语言中都有但是c语言独有的 是 goto 语句
上代码

4.goto 字符串;

   int a = 1,b = 8;
    start: if(a > b){
       printf("aaaa");
    }
    else{
        a++;
        goto start;
    }
    // goto 并不能直接  组成循环 
    // 但是和  if语句一起也可以产生循环效果;
    //  其中  start 可以改为任意合法字符串

       goto语句执行 是这样的 用字符串 加: 构成锚 ,由goto 跳至相应的锚;

猜你喜欢

转载自blog.csdn.net/anyu_xin/article/details/77948699