在我们日常生活中,完成一件事往往可以分成以下三种情况:按照顺序结构完成,例如考驾照,必须按照国家规定的道路安全法,按照顺序完成科目一、科目二、科目三、科目四的内容,你才可以拿到驾照;按照选择结构完成,例如从上海到北京,你可以选择骑自行车去,可以选择自驾去、还可以选择坐火车和坐飞机去,只要最终能达到目的地选择哪种方式都是可以的;按照循环结构完成,例如,学习英语,必须要每天给自己制定计划,假设每天坚持背100单词,长此以往才有可能把英语学好。(这里也可以用C语言的学习来解释)。C语言作为结构化的程序设计语言,它就具有这三种结构:顺序、分支、循环。了解C语言的同学都清楚,顺序结构不用多讲,我们重点来了解C语言当中的,分支语句和循环语句。
C语言的分支
要了解C语言的分支,首先我们得了解C语言当中的两个语句if语句和switch语句。
if语句的语法形式如下:
if(a>=60)
printf("及格\n");
表达式为真的时候(非0为真),则执行语句,表达式为假的时候(0为假),则语句不执行。但有时候一条语句是无法满足我们的需求的。例如,老师想让你写段代码来实现:如果分数大于等于60分,则输出及格,如果分数小于60分,则输出不及格。此时我们必须借助if....else....来实现了。
if(a>=60)
printf("及格\n");
else
printf("不及格\n");
此时,if和else语句中默认只控制一条语句,但如果想让if和else控制多条语句时,这时候我们可以加上{}将代码放入{}中,此时如果不仅想知道如果分数大于等于60还想打印出具体的分数,和分数小于60,提醒同学需要补考时,具体代码为:
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
if (a >= 60)
{
printf("及格\n");
printf("分数为:%d\n", a);
}
else
{
printf("不及格\n");
printf("需要参加补考\n");
}
return 0;
}
在if....else....语句中,if和else语句都可以再次嵌套if....else....这样的语句来实现更复杂的功能。举例如下:
#include<stdio.h>
int main()
{
int a = 0;
scanf("%d", &a);
if (a > 0)
{
if (a >= 60)
{
printf("及格\n");
printf("分数为:%d\n", a);
}
else
{
printf("不及格\n");
printf("需要参加补考\n");
}
}
else
printf("请重新输入\n");
return 0;
}
还可以使用多条else if语句来实现多条分支,举例如下:
#include<stdio.h>
int main()
{
int score = 0;
scanf("%d", &score);
if (score < 60)
printf("不及格\n");
else if (score <= 70)
printf("中等\n");
else if (score <= 80)
printf("良好\n");
else
printf("优秀\n");
return 0;
}
在if....else....语句中, 出现最多的问题就是if和else所对应的问题,但是我们可以记住一条规则else总是和它最接近的if所匹配,而且作为初学者我建议即使if或else下面只有一条语句,最好每个if或else后面都要用{}来括住自己的代码。
switch语句将在下一节介绍,后面还有循环语句(while、for、do....while)的介绍