在C语言的补习课程中,有些学生对于C语言的结构不是很了解,为此为了让学生对于C语言有多的认识,有利于促进C语言的学习,本文对C语言的程序结构进行了简单的分析与解释。
程序结构:在C语言程序中,一共有三种程序结构:顺序结构、选择结构(分支结构)、循环结构;另外会介绍一个重要的结构,函数的介绍。
一、流程控制
1.顺序结构
默认的流程结构,按照书写顺序执行每一条语句
我们最开始接触的就是顺序结构:
#include
int main(int argc, const char *argv[])
{
printf("Hello World!\n");
return 0;
}
如上面的例子,就是最简单的顺序结构。
程序讲解:
#include:标准I/O头文件,下文中的printf需要使用这个文件
int main():主函数,一个程序的入口。一个程序有且只有一个main()函数
int:代表主函数的返回值类型是int型
printf():格式化输出,将括号内的内容打印到显示器上,打印字符串需要用双引号""引上
return 0;:配合主函数类型使用,一般来说返回0的程序表示程序运行成功
打印的结果为:Hello World!
2.选择结构
对给定的条件进行判断,再根据判断结果来决定执行那一段代码
3.循环结构
*在给定条件成立的情况下,反复执行某一段代码
二、选择结构--if
1.使用方式
1> if(表达式) 语句1;
* if(i>1) 恭喜你被黑马录取;
2> if(表达式) 语句1;else 语句2;
* if(i>1) 恭喜你被黑马录取;else 希望你再接再厉;
3> if(表达式){}
if(表达式){}
else{}
4> if (){}
else if(){}
else{}
选择结构:C语言中常用的选择结构主要有以下两种:
我们引入了一个bool类型的值(也叫boolean类型,布尔类型),只有两个值,即真和假。C语言的判断表达式最终的值就是一个bool类型,这个判断表达式的bool值就决定了选择结构如何选择,循环结构如何循环;
if else:引入关键字:if else else if
if (bool值) // 如果bool值为真,则执行代码段1,否则执行代码段2
{
代码段1
}
else
{
代码段2
}
if (bool值1) // 如果bool值1为真,则执行代码段1,否则判断bool值2是否为真
{
代码段1
}
else if (bool值2) // 若bool值2为真则执行代码段2,否则直接执行代码段3
{ // 开头的if和结尾的else都只能有一个,但是中间的else if可以有好多个
代码段2
}
else
{
代码段3
}
这段代码里,就有了选择结构,可以根据不同的判断,选择相应的执行代码 。
C 语言的编程中 ‘//’ 的含义是注释的意思。
三、选择结构--switch
1.使用格式
* switch(表达式) { case 数值1: break; … default: break;}
* 举例
switch case:引入关键字:switch case break default
switch (变量) // 执行到这一句时,变量的值是已知的
{ // switch case语句执行时,会用该变量的值依次与各个case后的常数去对比,试图找到第一个匹配项,找到匹配的项目后,
case 常数1: // 就去执行该case对应的代码段,如果没找到则继续下一个case,直到default
代码段1; // 如果前面的case都未匹配,则default匹配。
break;
case 常数2:
代码段2;
break;
……
default:
代码段n;
break;
}
*break作用:跳出整个循环;如果不写break,语句会一直向下执行,直到遇到break。
这个就是switch case语句的选择语句。
注意:
第一, case中必须是常数,而且必须是整形;
第二, 一般来说,每个case中代码段后都必须有一个break;
第三,case之后一般都会有default,虽然语法上允许没有default,但是建议写代码时一定要写。
关于两种的比较:if else和switch case的区别:if else适合对比条件较复杂,但是分支比较少的情况,switch case适合那种对比条件简单,但是分支较多的情况。通常的做法是:在适合使用switch case的情况下会优先使用switch case,如果不适合则使用if else。这一点根据自身情况,选择合适的方法使用。
2.if和switch的比较
* 很多情况下可以互换
* if使用方式较为灵活,使用的较多;switch适合有某个值
四、循环结构
1) 循环机构--for
(1) for:
for (循环控制变量初始化; 循环终止条件; 循环控制变量增量)
{
循环体
}
#include
int main(int argc, const char *argv[])
{
int i, sum = 0;
for(i = 0; i<= 100; i++)
{
sum = sum + i;
}
printf("%d\n", sum);
return 0;
}
循环执行步骤:
第一, 先进行循环控制变量初始化;
第二, 执行循环终止条件,如果判断结果为真,则进入第三步;如果为假则循环终止并退出;
第三,执行循环体;
第四,执行循环控制变量增量,转入第二步;记住他的循环步骤,编写程序的时候就会很简单。上面的事例程序就是从从1 加到100的运算。
注意:for循环()中的三部分除了循环终止条件外,其他两部分都可以省略,但标准的for循环中,应该把循环控制变量的初始化,增量都放在()当中,并且在循环体中绝对不应该更改循环控制变量,这个在编程中要注意。
2)循环结构--while
特点
*只有满足条件是才会执行循环体
*特别注意是否进入了死循环
(2) while:
循环控制变量初始化
while(循环终止条件)
{
循环体
循环控制变量增量
}
#include
int main(int argc, const char *argv[])
{
int i = 0, sum = 0;
while(i <= 100)
{
sum = sum + i;
i++;
}
printf("%d\n", sum);
return 0;
}
循环执行步骤:第一,先进行循环控制变量初始化(在while之前);第二,判断循环终止条件,如果判断结果为真,则进入第三步;如果为假则不执行循环体;第三,执行循环体;第
特点
*只有满足条件是才会执行循环体
*特别注意是否进入了死循环
3) 循环结构--do while
1.特点
* 一定会执行一次循环体
2.使用
*对比while的使用
(3) do while:
循环控制变量初始化
do
{
循环体
循环控制变量增量
}while (循环终止条件);
#include
int main(int argc, const char *argv[])
{
int i = 0, sum = 0;
do
{
sum = sum + i;
i++;
}while(i <= 100);
printf("%d\n", sum);
return 0;
}
循环执行步骤:第一,先进行循环控制变量初始化(在do while之前);第二,执行循环体;第三,执行循环控制变量增量;第四,判断循环终止条件,如果判断结果为真,则返回第二步;如果为假则直接退出循环;
上面关于循环的例子都是一样的,但需要学会比较内部的区别。不管哪种循环结构,都不能缺少循环控制条件初始化,终止条件,循环控制变量增量,循环体这四部分;while循环是先判断后执行,do while循环是先执行后判断,等循环一次之后,其实都是一样的。
补充:
1> 死循环 for(;;); 有时候我们会在子线程中使用无限循环,以达到不让县城退出的目的。
2> 注意:for循环体内变量的作用域
3> while循环和for循环的比较
* 可以互换
* for循环的变量可以及时回收
-------------------------------------------------------------------------------------------------------------------------------------------
想学习的可以微信扫码领取一下。课程内容专业丰富,包含多种类话题,专业讲师专业讲解,领取后会通过邮箱发给你,永久有效,随看随学!!!
-------------------------------------------------------------------------------------------------------------------------------------------