您的位置:首页 > 编程语言 > C语言/C++

c语言基础知识2流程控制(1)

2017-04-23 21:09 232 查看


流程控制

一:什么是流程控制

流程控制就是用来控制代码执行的顺序的流程

二:流程分类

顺序控制执行(按写好的代码顺序依次执行,平常用的最多)

选择控制执行(选择部分代码进行执行,有选择性的)

循环控制执行(部分代码会循环执行)

三:选择执行

1:单分支控制---if语句

如:int main()

{

   float a,b,max;

   printf("输入你要比较的两个数a和b空格控制输入\n");

   scanf("%f %f",&a,&b);

   //单分支if语句控制根据条件执行相应的代码

   if(a>=b)//如果满足就执行括号中的语句,否则执行下一个语句

   {

      max=a;

   }

   if(a<b)

       max=b;//if后面不加括号默认后面一句,想控制多个语句就的加括号

   printf("max=%f",max);

   return 0;

}

2:双分支控制---if…else…语句

如:int main()

{

   float a,b,max;

   printf("输入你要比较的两个数a和b空格控制输入\n");

   scanf("%f %f",&a,&b);

   //if...else是根据条件选择其中的一条语句执行

   if(a>=b)

   {

      max=a;

   }

   else

       max=b;

   printf("max=%f",max);

   return 0;

}

3:多分支控制---else…if…语句格式如下

If(条件1) 
语句1;

else if(条件2)
语句2;

else if(条件m)语句m;

else
语句m+1

如:求一元二次方程的根

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

#define EPS 1e-6

 

int main()

{

   
floata,b,c,disc,p,q;

   printf("input a b c\n");

   
scanf("%f%f %f",&a,&b,&c);

   if(fabs(a)<=EPS)//对a取绝对值,然后与零比较大小,注意这种实数与零比较大小的方法

   
{

       printf("不是一元二次方程!");

       
exit(0);//表示直接退出程序代码

   
}

   disc=b*b-4*a*c;//计算判别式

   
p=-b/(2*a);

   q=sqrt(fabs(disc))/(2*a);

   if(fabs(disc)<=EPS)

   
{

       printf("X1=X2=%.2f\n",p);//%.2f表示结果保留两位小数

   
}

   
else

   
{

       if(disc>EPS)//判别式大于零

       
{

           printf("x1=%.2f,x2=%.2f\n",p+q,p-q);

       
}

       
else

       
{

           printf("没有实根!");

       
}

   
}

 

}

4:用于多种讨论—switch语句结构如下:

Switch(表达式)//表达式只能int
char型

{

      
//case与常量中间至少有一个空格,常量后面是冒号且类型与表达式类型一致

      
case 常量1:             
                           

可执行语句序列

 
case 常量2:

                                                
可执行语句系列

      
case 常量3:

                                                
可执行语句系列

      
default:

                                                
可执行语句系列

}

运行时通过比较表达式与常量的值,执行相应case后面语句,可使用break跳出。没有break程序执行直到switch有右括号

如:计算输入两个数的四则运算加减乘除

int main()

{

   
float a,b;

   
char op;

   
printf("请输入运算表达式aopb\n");

   
scanf("%f%c%f",&a,&op,&b);

   
switch(op)//根据op选择相应的case操作

   
{

   
case '+':

       printf("%f+%f=%.2f",a,b,a+b);

       
break;

   
case '-':

       printf("%f-%f=%.2f",a,b,a-b);

       
break;

   
case '*':

       printf("%f*%f=%.2f",a,b,a*b);

       
break;

   
case '/':

       
if(b==0)//c语言中赋值表达式等号左边必须是是变量

       
{

           printf("抱歉。被除数不能为零!");

           exit(0);

       
}

       
else

       
{

         printf("%f/%f=%.2f",a,b,a/b);

         
break;

       
}

 

   
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: