(2) C语言基础知识:控制结构和函数
控制结构和函数是C语言编程的两个基本概念,它们可以让程序具有更多的灵活性和可重复性。
控制结构¶
C语言中的控制结构有三种基本类型:顺序结构 、 选择结构 和 循环结构:
顺序结构¶
是最简单的一种结构,程序按照语句的顺序依次执行;
选择结构¶
可以让程序在满足一定条件时执行不同的语句,常见的选择结构包括if
语句和switch
语句;
下面是一个简单的例子,展示了if
语句的基本用法:
- 在这个例子中,
if
语句判断变量x
是否大于5,如果是,则执行printf
语句打印"x is greater than 5"
到屏幕上。如果条件不满足,则不执行printf
语句。
下面是switch
语句的语法格式:
switch (表达式)
{
case 常量1:
语句1;
break;
case 常量2:
语句2;
break;
...
case 常量n:
语句n;
break;
default:
默认语句;
break;
}
其中:
- 表达式:
switch
语句要比较的表达式。 case
常量:常量值,表示要比较的值。- 语句:与
case
常量匹配时执行的语句。 break
:用于结束switch
语句的执行。default
:与其他case
常量不匹配时执行的语句。
switch
语句首先求出表达式的值,然后依次与case
常量进行比较。如果表达式的值与某个case
常量相等,则执行相应的语句;如果表达式的值与所有case
常量都不相等,则执行default
语句。需要注意的是,在每个case
语句中必须包含break
语句,否则程序将会执行所有匹配的case
语句。
下面是一个简单的例子,展示了switch
语句的基本用法:
int day = 3;
switch (day)
{
case 1:
printf("Monday");
break;
case 2:
printf("Tuesday");
break;
case 3:
printf("Wednesday");
break;
case 4:
printf("Thursday");
break;
case 5:
printf("Friday");
break;
default:
printf("Invalid day");
break;
}
-
在这个例子中,我们使用
switch
语句根据变量day
的值来输出对应的星期几名称。switch
语句首先检查day
的值,然后根据匹配的case
语句输出相应的星期几名称。如果day
的值不匹配任何case
语句,则执行default
语句输出"Invalid day"
。 -
需要注意的是,在
switch
语句中,每个case
后面的语句都要以break
语句结束,以确保程序不会继续执行下一个case
语句。否则,程序会顺序执行每个case
语句,直到遇到break
语句或switch
语句结束。
循环结构¶
可以让程序重复执行一段代码,常见的循环结构包括for
循环、while
循环和do-while
循环。
-
需要注意的是,在循环中可以使用
break
和continue
语句来控制循环的行为:break
语句:可以立即终止循环continue
语句:可以跳过当前迭代,直接执行下一次迭代。
-
这些语句可以帮助我们在循环中实现更加复杂的逻辑。
下面是for
循环的语法格式:
其中:
- 初始化表达式:在循环开始前执行的语句,用于初始化循环变量。
- 条件表达式:在每次循环迭代开始前求值的表达式,如果表达式的值为真(非零),则执行循环体语句;否则终止循环。
- 更新表达式:在每次循环迭代结束后执行的语句,用于更新循环变量的值。
- 循环体语句:在每次循环迭代开始前执行的语句,可以是单条语句或复合语句(用大括号括起来的多条语句)。
for
循环是C语言中最常用的循环结构之一,它可以帮助我们重复执行一段代码,并在循环内部控制循环变量的行为。
下面是for
循环的一个例子:
在这个例子中,我们使用for循环打印变量i的值。for循环的语法包括三个部分:循环变量的初始化、循环条件的判断和循环变量的更新。在这个例子中,我们使用变量i作为循环变量,初始化为0,循环条件是i小于5,每次循环结束后将i加1。因此,循环会执行5次,分别输出i的值为0、1、2、3、4。
下面是while语句的语法格式:
其中:
- 条件:在每次循环开始前求值的表达式,如果表达式的值为真(非零),则执行循环体语句;否则终止循环。
- 循环体语句:在每次循环迭代开始前执行的语句,可以是单条语句或复合语句(用大括号括起来的多条语句)。
while语句是C语言中最基本的循环结构之一,它可以根据条件重复执行一段代码,并在循环内部控制条件的变化。需要注意的是,在循环体中必须改变循环条件,否则程序将会进入死循环并一直执行下去。
下面是一个使用while循环的例子:
在这个例子中,我们使用while循环打印变量i的值。while循环的条件是i小于5,每次循环结束后将i加1。因此,循环会执行5次,分别输出i的值为0、1、2、3、4。
需要注意的是,与for循环不同,while循环没有循环变量的声明和初始化语句。因此,在使用while循环时,需要手动初始化循环变量,并在循环体内更新循环变量的值,以避免进入死循环。
下面是do-while语句的语法格式:
其中:
- 循环体语句:在每次循环迭代开始前执行的语句,可以是单条语句或复合语句(用大括号括起来的多条语句)。
- 条件:在每次循环结束后求值的表达式,如果表达式的值为真(非零),则继续执行循环体语句;否则终止循环。
do-while
语句和while
语句类似,都是根据条件重复执行一段代码。不同的是,在do-while
语句中,循环体语句至少会被执行一次,因为条件是在循环体执行结束后才进行判断。这意味着,无论条件是否满足,do-while
循环都会至少执行一次。
需要注意的是,在使用do-while
语句时,需要注意循环条件的设置,避免进入死循环。
函数¶
函数是C语言中的另一个基本概念,它可以让程序员将一段代码封装成一个独立的模块,并在需要的时候调用它。函数通常由函数头、函数体和返回值组成。
函数头指定函数的返回类型和参数类型,例如:
这个函数头指定了一个名为add的函数,它有两个int类型的参数a和b,返回值为int类型。
函数体包含了函数实际执行的代码,例如:
这个函数体实现了两个数相加的操作,并将结果存储在result变量中,最后返回result的值。
下面是一个调用add函数的例子:
在这个例子中,add函数被调用,并将3和5作为参数传入。add函数返回它们的和8,并将8赋值给变量sum。最后,printf语句打印"The sum of 3 and 5 is 8"。
总结¶
介绍了C语言中的控制结构和函数。控制结构是C语言中用于控制程序流程的重要工具,包括顺序结构、选择结构和循环结构。顺序结构是指按照语句的书写顺序依次执行每条语句;选择结构是指根据条件执行不同的语句;循环结构是指重复执行某些语句直到满足某个条件为止。
函数是C语言中的基本模块,可以将代码分为多个逻辑部分,提高代码的重用性和可读性。在函数中,我们可以定义函数的参数和返回值,使函数可以接收外部数据和向外部返回数据。同时,函数也可以递归调用自身,实现更加复杂的逻辑。
除了控制结构和函数,本章还介绍了一些C语言中的基本概念,如变量、数据类型和字节。掌握这些概念是学习C语言的重要基础,可以帮助我们更好地理解C语言中的各种语法和特性。