C语言5种程序语句(1)——流程控制语句中的结构化语句(条件语句和循环语句)

C语言有5种类型的语句:

(1)表达式语句包括:运算符表达式语句、赋值语句

(2)流程控制语句包括结构化语句非结构语句

A.结构化语句包括:条件语句循环语句

   a.条件语句包括:if语句switch语句

   b.循环语句包括:while语句do while语句for语句

B.非结构化语句包括:限定转向语句非限定转向语句

  a.限定转向语句:break语句continue语句return语句

  b.非限定转向语句:goto语句

(3)函数调用语句

(4)空语句

(5)复合语句

 

结构化程序设计的核心是算法控制结构

算法:解决问题时的一系列方法和步骤;主要表示方法:伪代码和流程图。

算法的步骤间有一定的逻辑顺序,此体现为控制结构。分为:顺序结构、分支结构和循环结构

(1)顺序结构:最简单、最基本,从上往下执行,不进行跳转;

     形式:

……

语句1;

语句2;

语句3;

…….

执行顺序:语句1;》语句2;》语句3;……..

(2)分支结构:有3种:单分支、双分支和多分支;即选择结构,根据条件判断执行程序,成立则执行,反之不执行。

(3)循环结构:当型循环直到型循环。用于一遍一遍执行程序的某部分,根据条件判断是否执行,重复执行多少次。循环结构:循环条件循环体

 

一、条件语句

A.     if语句

a.判断表达式:

     if(判断表达式)

    {

       结构体;

   }

 

例子:

#include

#include   //使用getch

void main(void)

{

       int price=0;  

       printf("请输入商品价格:");

       scanf("%d",&price);

       if(price<50)

       {

              printf("好,我买了");

       }

       getch();

}

   b.花括号和if结构体

     (1)if(表达式)

         {

       语句1

       语句2

        语句3

}

    (2)if(表达式)        等价于     if(表达式)

                 语句1                                      { 语句1 }

                 语句2                                         语句2

                 语句3                                         语句3

if后边并非必须跟“{}”,如(1)中if条件满足,{}中的块语句都执行;(2)中if条件满足,执行语句1,语句2和语句3会执行。

 

B.     if else语句

两个选择

   形式:

   if(表达式)

   {

              代码段1

}

else

{

         代码段2

}

if后边的表达式为真,执行代码段1,否则执行代码段2。

例子:

#include

#include

void main(void)

{

       int price=0;

       printf("请输入商品价格:");

       scanf("%d",&price);

       if(price<50)

       {

              printf("好,买了");

       }

       else

       {

              printf("不买");

       }

       getch();

}

 

例程:

#include
int main()
{
 int a = 2,c;
 if(a==1) c=1;
 if(a==2) c=2;
 if(a%2==0) c=3;
 printf("%d\n",c);   //  打印   3
 
 if(a==1) c=1;
 else if(a==2) c=2;
 else if(a%2==0) c=3;
 printf("%d\n",c);   //打印   2

 switch(a)   //相当于if if了,所有的1,2,3,4满足条件的都会执行一次
 {       //注:从case 2开始执行,按顺序执行一遍
     case 1:  c=1; 
  case 2:  c=5; 
  case 3:  c=9; 
  case 4:  a=2;   
  break;
 }
 printf("%d\n",c);   //打印  9

 switch(a)   //else if了,只要满足条件就跳出了
 {   
  case 1:  c=1;     
    break;   
  case 2:  c=5;      
    break;   
  case 3:  c=7;      
    break;   
  case 4:  c=9;      
    break;
 }
 printf("%d\n",c);   //打印  5
}

 

C.    if  if 语句和swich语句

多个选择

if(表达式1

{

         代码段1

}

else if(表达式2

{

         代码段2

}

   ……

else if(表达式m

{

         代码段m

}

else

{

         代码段m+1

}

例子:

#include

#include

void main(void)

{

    int a=0;

    printf("请输入学生成绩:\n");

    scanf("%d",&a);

    if(a>=90)

           printf("A");

    if(a>=75 && a<90)

           printf("B");

    if(a>=60 && a<75)

           printf("C");

    if(a<60)

           printf("D");

}

 

D.    分支语句嵌套

形式:

if (表达式1

{

        if(表达式2

{

        代码段1

}

else

{

     代码段2

}

}

 

E.     开关语句:switch语句

多选一

形式:

switch(表达式)

{

        case(常量表达式1);

              代码段1

              break

case(常量表达式2);

              代码段2

              break

         ……

case(常量表达式

);

              代码段m

              break

default

               代码段m+1

}

 

例子:

#include

#include

void main(void)

{

       int a=0;

       printf("请输入一个1到7的整数:\n");

       scanf("%d",&a);

       switch(a)

      

       {

              case 1:

                     printf("Monday\n");

                     break;

              case 2:

                     printf("Monda\n");

                     break;

              case 3:

                     printf("Mond\n");

                     break;

              default:

                     printf("Mon\n");

       }

}

 

二、循环语句

A.  while 语句   (当型)

形式:

   while (表达式)

{

         循环结构体

}

  While语句后边的{}为循环体,如果直接跟着“;”,说明在while后边表达式为真时,执行空语句,直到表达式为零,跳出while语句。

例子:

#include

#include

void main(void)

{

       int sum=0;

       int i=1;

       while(i<=100)

       {

              sum=sum+i;

              i=i+1;

       }

       printf("结果是:%d",sum);

       getch();

}

 

B.  do while 语句  (直到型)

形式:

do

{

         循环结构体

}

while(表达式);   //有分号

 

do while结构中的循环结构体至少会被执行一次,直到while后的表达式非零,跳出do while结构向下执行。

 

例子:

#include

#include

voidmain(void)

{

  int sum=0;

  int i=100;

/*      while(i)

  {

         sum=sum+i;

         i--;

  }   */

  do

  {

         sum=sum+i;

         i=i-1;

  }

  while(i);

  printf("结果是:%d",sum);

  getch();

}

 

C.  for 语句    (当型)

  形式:

  for(初始化表达式;判断表达式;修正表达式)

{

  循环体

}

等价于while结构:

while(判断表达式)

{

         循环体

修正表达式;

}

for语句比较简洁,其执行过程:

a.      计算初始化表达式;

b.      计算判断表达式的值,如果其值为真(非0),则执行循环体,并执行c步骤;若为假,则循环结束,转到e步骤;

c.      计算修正表达式;

d.      转回b步骤执行;

e.      循环结束,跳出for循环,向下执行。

   注意:for中的表达式可以省略,但是“;;”不能省略;

   即:

for(  )   等价于      while1

{                          {

       …….                      ……

}                          }

 

 

例子:

#include

#include

void main(void)

{

       int i,j;

       for(i=1; i<=4;i++)     //外层循环4次

       {                       

              for(j=1; j<=9;j++) //内层循环9次

              {

                     printf("*  ");  //后边带俩个空格

              }

              printf("\n");

       }

       getch();

}

注意:一般内循环次数多余外循环

 

D. 跳出循环:break

可从死循环中跳出来

适用于3种循环结构,只能用于switch语句,不能跳出if语句和if else语句

例子:

#include

#include

void main(void)

{

       int i=0;

       while(1)

       {

              printf("Hello\n");

              i++;

              if(i>5)

                     break;

       }

       getch();

}

 

E. 重来一次: continue  

    break用于结束整个循环结构,而continue语句结束的只是当前一次循环,只是结束本次循环中后续内容,被称为循环继续语句。

 

F.     随心所欲:goto

即:go to,为自由转向语句,可以跳转到任何地方;

形式:

goto+标号名

 

例子:

#include

#include

void main(void)

{

int i=0;

while(1)

{

        printf("*  ");

        i++;

        if(i>3)   //0到3,输出4个*,退出*

               goto outside;

}

outside:printf("\n\n\n* ");

}

你可能感兴趣的:(C)