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;
}
}
}
流程控制
一:什么是流程控制
流程控制就是用来控制代码执行的顺序的流程
二:流程分类
顺序控制执行(按写好的代码顺序依次执行,平常用的最多)
选择控制执行(选择部分代码进行执行,有选择性的)
循环控制执行(部分代码会循环执行)
三:选择执行
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;
}
}
}
相关文章推荐
- 黑马程序员-C语言基础知识-流程控制
- javaSE_8系列博客——Java语言的特性(二)--高级语言的基础知识(7)-- 流程控制语句
- Java语言基础——分支流程控制if switch
- 汇编语言 学习笔记(基础知识二----地址总线、数据总线、控制总线)
- 黑马程序员-iOS基础-C语言基础(三)流程控制及函数
- 01_Java语言基础部分(数据类型与表达式、流程控制语句、数组与方法)
- 黑马程序员--Java语言基础2-流程控制和函数
- 基础知识之运算符及流程控制语句
- C语言基础----流程控制
- Go语言基础知识总结(语法、变量、数值类型、表达式、控制结构等)
- 黑马程序员--------java基础知识 程序流程控制
- 黑马程序员——C语言基础语法--scanf函数、基本运算、流程控制
- PHP从入门到精通——读书笔记(1-5章:语言基础,流程控制,字符串操作等)
- 用《叩响C#之门》复习C#基础知识 第四章 流程控制
- 黑马程序员-Java基础知识预备之Java流程控制与数组
- C语言基础—流程控制
- Java语言基础(程序流程控制-if、switch、for、while、do while、break、continue)
- Java基础知识(数据类型、标识符、变量、运算符和流程控制语句)
- JavaScript语言基础-数据运算和流程控制
- C语言基础之基础语法、基本运算及流程控制