• C语言学习-while循环、do-while、for循环


    今天主要学习了循环结构

    循环结构1-while循环

     

    格式如下:

    1 while ( 条件 )
    2 {
    3     语句1;
    4     语句2;
    5     ....
    6 }

    1)如果条件成立,就会执行循环体中的语句(“循环体”就是while后面大括号{}中的内容)。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环

    2)while循环的特点:如果while中的条件一开始就不成立,那么循环体中的语句永远不会被执行

    例如:

     1 /*
     2 输出十次hello world
     3 */
     4 int main(){
     5     
     6     int  i = 0;
     7 
     8     while (i < 10) {
     9        
    10         printf("Hello world!----%d
    ",i);
    11         i++;
    12   
    13      }
    14 
    15 }

    如果省略第11行的i++,count就一直是i,那么i<10一直都是成立的,这个while循环将会陷入“死循环”,一直在重复执行第10行代码。

    循环结构2-do while循环

    格式如下:

    1 do {
    2     语句1;
    3     语句2;
    4      ...
    5 } while (条件);

    1)注意第5行,后面是加上一个分号;的

    2)当执行到do-while循环时,首先会执行一遍循环体中的语句(“循环体”就是do后面大括号{}中的内容)。接着判断while中的条件,如果条件成立,就执行循环体中的语句。然后再次判断条件,重复上述过程,直到条件不成立就结束while循环

    3)do-while循环的特点:不管while中的条件是否成立,循环体中的语句至少会被执行一遍

    4)其实do while循环的用法跟while循环是差不多的,这里就不举例子了。

    循环结构3-for循环

    for循环是所有循环结构中最复杂的。

    1 for (语句1; 条件; 语句2) {
    2     语句3;
    3     语句4;
    4     ...
    5 }

    1)for循环开始时,会先执行语句1,而且在整个循环过程中只执行一次语句1

    2)接着判断条件,如果条件成立,就会执行循环体中的语句(“循环体”就是for后面大括号{}中的内容)

    3)循环体执行完毕后,接下来会执行语句2,然后再次判断条件,重复上述过程,直到条件不成立就结束for循环

    例如 :

     1 int main(){
     2 /*
     3 利用循环输出:
     4   1
     5   1 2
     6   1 2 3
     7  */
     8     for (int i =1 ; i <= 3; i++) {
     9        for (int j = 1; j <= i; j++) {
    10             printf("%d ",j);
    11         }
    12         printf("
    ");
    13         
    14     }
    15     
    16     return 0;  
    17 }

    输出结果为:

    1
    1 2
    1 2 3

    需要注意的是:变量i的作用域是第8~14行。一旦离开了这个第一层for循环,变量i就失效了,变量j的作用域是9~11行,一但离开内部for循环,变量j就失效了。

     总结:

     1.for最常用,通常用于知道循环次数的循环。

     2.while也很常⽤,通常用于不知道循环次数的循环。

    break和continue

    1.break

    前面在switch语句中已经用到了break,它的作用是跳出switch语句。它也可以用在循环结构中,这时候它的作用是跳出整个循环语句。

    这里以for循环为例子,break也可以用在while循环、do-while循环中。

    1 for (int i = 0; i<5; i++) {
    2     printf("i=%d 
    ", i);
    3     
    4     if (i>2) {
    5         break;
    6     }
    7 }

    上面代码的意思是当i>2时,就跳出整个for循环,也就是结束for循环,所以输出结果是:

    i=0 
    i=1 
    i=2 
    i=3

    for循环嵌套

    先来看一个for循环嵌套的例子,嵌套的意思就是:for循环内部又一个for循环

    1 for (int x = 0; x<2; x++) {
    2      for (int y = 0; y<2; y++) {
    3          printf("x=%d, y=%d 
    ", x, y);
    4      }
    5  }

    输出结果是:

     x=0, y=0 
     x=0, y=1 
     x=1, y=0 
     x=1, y=1 

    这个时候如果在for循环中加入一个break,那么这个break究竟是跳出里面还是外面的for循环呢?

    1 for (int x = 0; x<2; x++) {
    2      for (int y = 0; y<2; y++) {
    3          printf("x=%d, y=%d 
    ", x, y);
    4          
    5          break;
    6      }
    7  }

    注意第5行的break,这个break的作用是跳出里面的for循环,并非外面的for循环。所以输出结果是:

    x=0, y=0 
    x=1, y=0 

    如果改变一下break的位置

    1  for (int x = 0; x<2; x++) {
    2      for (int y = 0; y<2; y++) {
    3          printf("x=%d, y=%d 
    ", x, y);
    4      }
    5     
    6      break;
    7  }

    注意第6行的break,这个break的作用是跳出外面的for循环,并非里面的for循环。所以输出结果是:

    x=0, y=0 
    x=0, y=1 
    
    

    规律已经很明显了:break只会影响它所在的那个for循环

    2.continue

    continue只能使用在循环结构中,它的作用是跳过这一次循环,直接进入下一次循环。

    这里以for循环为例子,continue也可以用在while循环、do-while循环中。

    1 for (int x = 0; x<10; x++) {
    2      if (x%2==0) {
    3          continue;
    4      }
    5     
    6      printf("x=%d 
    ", x);
    7  }

    注意第2行,当x%2==0,也就是当x是2的倍数时,就跳过这次循环,不执行第6行语句,直接进入下一次循环。输出结果:

    x=1 
    x=3 
    x=5 
    x=7 
    x=9 

    跟break一样,continue只会影响它所在的那个for循环

  • 相关阅读:
    python
    爬虫
    python 自动登录
    day22 cookie session 中间件 Form
    day10进程、异步IO、
    python第五课
    day21
    day20 Django
    day 19
    day18
  • 原文地址:https://www.cnblogs.com/wlios/p/4474144.html
Copyright © 2020-2023  润新知