博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
黑马程序员——程序结构
阅读量:4650 次
发布时间:2019-06-09

本文共 4102 字,大约阅读时间需要 13 分钟。

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

一、程序的结构分类

1.顺序结构     “直流型”

     

2.分支结构     “岔路型”

3.循环结构      

二、顺序结构

顺序结构是3种结构中最简单的,也是默认的流程结构:程序中的语句是按照书写顺序执行的。

三、分支结构

  1.if语句

   C语言的if语句有三种基本形式。

   1)第一种形式: if(表达式) {语句};

      原理:如果表达式的值为真,则执行其后的语句,否则不执行该语句。例如:

int a = 7;int b=3if ( a>b){    printf("a>b\n");    } return 0;

  2)第二种形式为:if(表达式) {语句1;}else{ 语句2;}

        原理:如果表达式的值为真,则执行语句1,否则执行语句2 。例如:

#include 
int main(void){ int a, b; printf("输入两个数:"); scanf("%d%d",&a,&b); if(a>b) printf("max=%d\n",a); else printf("max=%d\n",b); return 0;}

  3)第三种形式为:         if(表达式1)

                                语句1;
                           else  if(表达式2) 
                                 语句2;
                           else  if(表达式3) 
                                 语句3;
                                  … 
                           else  if(表达式m) 
                                语句m;
                           else
                                语句n;
  
    原理:依次判断表达式的值,当出现某个值为真时,则执行其对应的语句。然后跳到整个if语句之外继续执行程序。 如果所有的表达式均为假,则执行语句n。然后继续执行后续程序。例如:

int a = 10;if ( a==0 ) {    printf("a等于0");} else if( a>0 ) {    printf("a大于0");} else { printf("a小于0"); }

       4)if语句的嵌套

          例如:

#include 
int main(void){ int a,b; printf("please input A,B: "); scanf("%d%d",&a,&b); if(a!=b) if(a>b) printf("A>B\n"); else printf("A

  C语言规定,else 总是与它前面最近的if配对。

2.switch语句

  形式:

       switch(表达式){ 

    case 常量表达式1:  语句1;
    case 常量表达式2:  语句2;
    … 
    case 常量表达式n:  语句n;
    default:  语句n+1;
    }

    原理:先计算表达式的值,再逐个与其后的常量表达式值相比较,当表达式的值与某个常量表达式的值相等时, 即执行其后的语句,然后不再进行判断,继续执行后面所有case后的语句。如表达式的值与所有case后的常量表达式均不相同时,则执行default后的语句。

  

#include 
int main(void){ int a; printf("input integer number: "); scanf("%d",&a); switch (a){ case 1:printf("Monday\n"); case 2:printf("Tuesday\n"); case 3:printf("Wednesday\n"); case 4:printf("Thursday\n"); case 5:printf("Friday\n"); case 6:printf("Saturday\n"); case 7:printf("Sunday\n"); default:printf("error\n"); } return 0;}

  上述程序,表达的是用户输入一个数,根据用户输入的数输出相应数对应的以及其后的所有语句。

      注意:但我们只需要输出一个语句时,我们可以在每个case语句后加”break;“,其作用是结束操作并跳出switch语句。

     使用switch语句注意事项:

     1)switch(表达式)以及case(常量表达式)中的表达式必须是整型或者可以转变为整型的值。

    •  整型变量   int num=9;switch(num)
    •  整型常量   switch(5)
    •  返回值是整型的表达式   switch(5+3)
    •  可以转换为int类型的表达式  switch(‘a’+‘a’)

     2)case语句和default语句可以在switch内任意排序。

     3)在case后的各常量表达式的值不能相同。

     4)case语句中需要定义变量必须加大括号

四、循环结构

    循环语句的条件:循环条件、循环体、循环结束语句。

   1.while

     形式:

            while ( 条件 )

           {
             语句1;
             语句2;
             ....
             }

   原理:判断条件,当条件为真(非0)时,执行循环体语句,然后再次判断条件,重复上述过程,直到条件不成立就结束while循环。

       

1 #include 
2 int main(void){ 3 int i,sum=0; 4 i=1; 5 while(i<=100){ 6 sum=sum+i; 7 i++; 8 } 9 printf("%d\n",sum); 10 return 0; 11 }

    上述程序表示1+2+...+100的值。

   使用while语句注意事项:

        1)条件为非0值,程序将一直循环下去,变为死循环。

        2)当条件为一个变量与一个常量进行==或!=的时候,通常把常量写在前面

             int num=3;

             while(3==num)

        3)如果while后只有一个语句可以省略大括号。

2.do-while

         形式:

              do {

语句1;             语句2;             ...           } while (条件);
1 #include 
2 int main(void){ 3 int i,sum=0; 4 i=1; 5 do{ 6 sum=sum+i; 7 i++; 8 } 9 while(i<=100); 10 printf("%d\n",sum); 11 return 0; 12 }

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

3.for

形式: 

    for(表达式1;控制条件; 表达式2)  循环体

原理:

1)先求解表达式1。

2)判断控制条件,若其值为真(非0),则执行for语句中指定的内嵌语句(循环体),然后执行下面第3步;若其值为假(0),则结束循环,转到第5步。

3)求解表达式2。

4)转回上面第2步继续执行。

5)循环结束,执行for语句下面的一个语句。                                                                                                                        

   其他形式:1)定义变量可在括号外

int i=1;for( ; i<=100 ;  i++){    sum=sum+i;   }

      2)表达式2省略

for( i=1; i<=100 ; ){    sum=sum+i;    i++;}

        3)都可省略

int i=0;for( ;  ; ){   if(i<=100)    sum=sum+i;    i++;}else{ break; }

      for循环的嵌套

1 #include 
2 int main(void){ 3 int i, j, k; 4 printf("i j k\n"); 5 for (i=0; i<2; i++){ 6 for(j=0; j<2; j++){ 7 for(k=0; k<2; k++){ 8 printf("%d %d %d\n", i, j, k); 9 } 10 } 11 } 12 return 0; 13 }

 

五、break和continue的使用

   1.break

    break语句用于do-while、for、while循环语句中,可使程序终止循环而执行循环后面的语句,通常break语句总是与if语句联在一起,即满足条件时便跳出循环。break只会影响它所在的那个循环。

1 #include 
2 int main(){ 3 for (int x = 0; x<2; x++) { 4 for (int y = 0; y<2; y++) { 5 printf("x=%d, y=%d \n", x, y); 6 } 7 8 break; 9 }return 0; 10 }

  2.continue

   continue语句的作用是跳过循环体中剩余的语句而强行执行下一次循环。跟break一样,continue只会影响它所在的那个循环。

1 #include 
2 int main(){ 3 for (int x = 0; x<50; x++) { 4 if (x%2==0) { 5 continue; 6 } 7 8 printf("x=%d \n", x); 9 } 10 return 0; 11 }

上述程序表示的是0-50之间能被2整除的数。

 

                 

 

转载于:https://www.cnblogs.com/YjAdair/p/4520907.html

你可能感兴趣的文章