C语言是一门结构化的语言,在C语言中,分支循环语句起到了巨大的作用,分支语句分为三种:1、switch语句;2、if语句;3、else-if语句。循环语句又分为三种:1、while语句;2、do-while语句;3、for语句。以下介绍这几种常见分支循环语句的用法,
一、分支语句
1.switch语句
在面对多分支问题,并且各个情况能够用整形常量表达式表示的时候,可以使用switch语句,switch语句的流程图如下:
流程:进入switch语句后,根据switch()整形表达式来决定进入哪一个case,若没有找到匹配的case,那么会进入default,执行分别对应的语句,再通过break退出switch语句,如果没有break,那么会把后面所有case以及default中的语句执行,直到最后一行或者遇到break。可以这样理解:case决定入口,break决定出口。
注:case和default没有严格的顺序,但一般default放在最后;
字符也是整形表达式,其值是ASCII码值
应用实例:运用switch写一个简单的计算器
#define _CRT_SECURE_NO_WARNINGS 0
#include<stdio.h>
int main()
{
float a = 0.0f, b = 0.0f;
char c;
printf("请输入一组四则运算:\n");
scanf("%f%c%f", &a, &c, &b);
switch (c)
{
case '+':
printf("%.2f", a + b);
break;
case'-':
printf("%.2f", a - b);
break;
case'*':
printf("%.2f", a * b);
break;
case'/':
printf("%.2f", a / b);
break;
default:
printf("输入错误!");
break;
}
return 0;
}
2.if语句
在面对单分支语句的时候,可以使用if语句。if(表达式),表达式中的是判断条件,如果为真,进入语句一,如果为假,进入语句二,流程图如下:
注:if语句后面如果跟着单行语句,可以不加中括号,如果跟着多条语句,要加上大括号,不加大括号默认只有紧跟着if的语句包含在内
应用实例:运用if语句判断一个数是否是正数
#define _CRT_SECURE_NO_WARNINGS 0
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
if (a > 0)
{
printf("%d是正数\n",a);
}
return 0;
}
当面对双分支问题的时候,可以使用if和else,符合情况一的进入if,其余情况进入else,大括号的使用规则同上,流程图如下:
、
注:else与上方离得最近的if匹配,而不是与对其的if匹配
应用实例:判断一个人是否是高度近视(以600度为标准)
#define _CRT_SECURE_NO_WARNINGS 0
#include<stdio.h>
int main()
{
int degree = 0;
printf("请输入你的度数:");
scanf("%d", °ree);
if (degree >= 600)
printf("你是高度近视");
else
printf("你不高度近视");
return 0;
}
3.else-if语句
当面对两个以及两个以上的多分支问题的时候,可以采用else if语句,else if语句其实是由if-else语句嵌套简化而来的,简化前如下面的代码:
#include<stdio.h>
int main()
{
if(...)
{
...
}
else
{
if(...)
{
...
}
}
return 0;
}
简化后的代码如下:
#incldue<stdio.h>
int main()
{
if(...)
{
...
}
else if(...)
{
...
}
return 0;
}
流程图如下:
应用实例:运用if-else语句判断一个数是正数、负数还是0
#define _CRT_SECURE_NO_WARNINGS 0
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
if (a > 0)
printf("%d是正数\n", a);
else if (a < 0)
printf("%d是负数\n", a);
else
printf("%d为0\n", a);
return 0;
}
二.循环语句
1.while语句
while语句可以实现循环,其流程是先根据while(表达式1)中的表达式1进行判断,如果为真,那么进入while语句,如果为假,那么结束循环,由此也可以知道,在有限循环的前提下,表达式1的执行次数要比while语句的执行次数多一次
流程图如下:
应用实例:利用while循环语句打印1~10中的奇数
#define _CRT_SECURE_NO_WARNINGS 0
#include<stdio.h>
int main()
{
int i = 1;
printf("1~10内的奇数有:\n");
while (i <= 10)
{
if (1 == i % 2)
printf("%d ", i);
i++;
}
return 0;
}
2.do-while语句
do-while语句和while语句不同,是先执行do-while中的语句,再进行判定,如果为真,那么进入下一次循环,如果为假,那么结束循环,do-while中的语句执行次数和判断表达式的执行次数相同,流程图如下:
应用实例:运用do-while打印1~10
#define _CRT_SECURE_NO_WARNINGS 0
#include<stdio.h>
int main()
{
int i = 1;
do
{
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
注:在while();后面的;绝对不能忘掉
3.for语句
for语句是对while语句简化而来的,其格式为for(初始化语句;循环条件;调整语句),先对循环条件进行判定,如果为真,进入for语句,如果为假,退出循环
注:初始化语句和调整语句可以省略,但循环条件一定不能省
当省略初始化语句或调整语句的时候,“;”不能省略,依然保留
当有多个初始化语句、循环条件或调整语句的时候,用“,”分隔开
应用实例:运用for语句打印100~200之间的素数
#define _CRT_SECURE_NO_WARNINGS 0
#include<stdio.h>
#include<math.h>
int main()
{
int i = 100, j = 2, k = 0;
for (i == 100; i < 200; i++)
{
k = sqrt(i);
for (j = 2; j <= k; j++)
{
if (0 == i % j)
{
break;
}
}
if (j > k)
{
printf("%d ", i);
}
}
return 0;
}
以上就是对C语言分支循环语句的介绍,所有的分支循环语句,只要能够满足实际要求,都可以嵌套搭配使用,哪种语句好用需要根据实际需求判断,没有绝对性。