【黑马程序员】————流程控制

  

 

一、  流程控制

  顺序结构:默认的流程结构。按照书写顺序执行每一条语句。

  选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码。

  循环结构:在给定条件成立的情况下,反复执行某一段代码。

     

二、      选择结构-if

  简单使用

 

 1.if的第1种结构

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

 
 2.if的第2种结构
 

 1 if(条件1)
 2  {
 3      语句1;
 4      语句2;
 5      ......
 6  } 
 7  else
 8  {
 9     
10  }
11  

 

3.if的第3种结构
 

 1 if(条件1)
 2  {
 3      语句1;
 4      语句2;
 5      ......
 6  }
 7  else if(条件2)
 8  {
 9  
10  }
11  else if(条件3)
12  {
13  
14  }
15  else if(条件4)
16  {
17  
18  }
19  else 
20  {
21  
22  }


 4.if的第4种结构

 

1 if (条件)
2    语句1;

 

 注意:1>比较大小时,常量值放左边,变量放右边

          2>注意赋值运算符,不要写成两个=

          3>if语句后面不要写;

          4>下面的代码是错误的:作用域不明确
                if (10 > 6)
                int a = 5;
               // 如果要在if后面的语句中定义新的变量,必须用大括号{}
               //printf("%d\n", a);

 

合条件

上课时间的取值范围(9~12 ||  14 ~17)

 

陷阱

if(a!=0)  { a不是0;} else {a是0;}

if (a); {  }

if (a=0) 

a == 0;

if (10) int a = 9;

 

三、      选择结构-switch

1.    简单使用

switch(表达式) { case 数值1: break; … default: break;}

举例

 

 1 int a = 10;
 2 
 3  switch (a) {
 4 
 5      case 0:
 6 
 7          printf("这是一个0");
 8 
 9          break;
10 
11      case 5:
12 
13          printf("这是一个5");
14 
15          break;
16 
17      case 10:
18 
19          printf("这是一个10");
20 
21          break;
22 
23      default:
24 
25          printf("什么也不是");
26 
27          break;

 

注意:1>break:退出整个switch语句

         2>如果case后面没有break,就会执行后面所有case中的语句,直到遇到break为止

         3>如果要在case后面定义新的变量,必须用大括号{}包住

 

2.      if和switch的对比

  1> if语句能完成的功能,switch并不一定能完成

  2> 在有些情况下,if语句和switch语句可以互换

  3> switch能完成的功能,if语句都能完成

 

四、      循环结构-while

1.          简单使用

  

  
 while (条件)
 {
    循环体
 }

  1>确定需要重复执行的操作
  2>确定约束条件

  

 

  continue:输出5次休息一下

  break的使用:某次的时候停止循环

2.          特点

  1>如果一开始条件就不成立,永远不会执行循环体  

  2>如果条件成立,就会执行一次循环体,执行完毕,再次判断条件是否成立.....

   

  break
  直接结束整个while循环
 
   continue
   结束当前的循环体,进入下一次循环体的执行

3.          习题

  1>     提示用户输入一个正整数n,计算1+2+3+…+n的和

  2>     提示用户输入一个正整数n,计算1-2+3-4+5-6+…+n的和

4.          陷阱

while(条件);

while(1);   // 最简单的死循环

 

五、      循环结构-do while

特点:一定会执行一次循环体

while和do while循环对比

  1>很多情况下,while和do while可以互换

  2>while特点:如果一开始的条件不成立,永远不会执行循环体
    do while特点:不管一开始的条件是否成立,至少会执行一次循环体

  3>最好使用while

1 int i=0;
2 while(i<0){
3  i++;
4 }
5 
6 int i=0;
7 do{
8  i++;
9 } while(i<0);

 

六、      循环结构-for

1.      简单实用

  for (语句1; 条件; 语句2)
 {
    循环体
 }

  语句1:初始化语句
  语句2:增量语句(执行完循环体后再执行的语句)

  1>for一开始就会执行一次语句1(整个for循环只会执行一次)

  2>判断条件是否成立,如果条件成立,就会执行一次循环体,然后就会执行语句2,再次判断条件是否成立

2.      for循环嵌套

好友列表1

         好友1

         好友2

好友列表2

         好友1

         好友2

好友列表3

         好友1

         好友2

 

3.      陷阱

  1>     死循环 for(;;);

  2>     for循环体内部变量的作用域

  3>     作用域混淆

  for (int i = 0; i<5; i++)  int a = 10;

  4>   不要随便在for()后面写分号

  5>  如果要在循环体中定义新的变量,必须用大括号{}包住

 

4.      while循环和for循环的比较

  可以互换

  for循环的变量可以及时回收

1.      习题

  1>     提示用户输入一个正整数n,如果n5,就输出下列图形,其他n值以此类推

  

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5     // 1.定义一个变量存储用户输入的值
 6     int n = 0; // 一定要初始化
 7     
 8     // 2.判断n值合不合理
 9     while (n <= 0)
10     {
11         // 2.1 提示用户输入正整数
12         printf("请输入一个正整数:\n");
13         
14         // 2.2 接收输入的数据
15         scanf("%d", &n);
16     }
17     
18     // 3.输出图形
19     for (int i = 0; i<n; i++)// 有多少行
20     {
21         
22         for (int j = 0; j<n-i; j++)
23         { // 每一行有多少个
24             printf("*");
25         }
26         
27         printf("\n");
28     }
29     
30     return 0;
31 }

 

 

  2>     输出九九乘法表

  

 

七、      break和continue

1.      break

  

  1.使用场合
   1> switch语句:退出整个switch语句
   2> 循环结构:退出整个循环语句
     * while
     * do while
     * for
  2.注意点
   只对最近的循环结构有效

 

2.      continue

  1.使用场合

  循环结构:结束当前这次的循环体,进入下一次循环体
     * while
     * do while
     * for
  2.注意点
  只对最近的循环结构有效

 

 

posted @ 2014-08-04 00:32  Jr_711  阅读(191)  评论(0编辑  收藏  举报