C语言讲解二

3. 控制结构

3.1 条件语句

条件语句用于根据不同的条件执行不同的代码块。在C语言中,主要的条件语句是 if 语句。

if 语句

if 语句用于执行条件为真时的代码块,可以结合 else ifelse 来处理多个条件分支和默认情况。

int a = 10;

if (a > 5) {
    // 如果条件为真执行这里的代码
} else if (a == 5) {
    // 如果第二个条件为真执行这里的代码
} else {
    // 如果以上条件都不成立执行这里的代码
}
  • 语法
    • if (condition):如果条件为真,则执行后面的代码块。
    • else if (condition):可选的,如果前面的 if 条件不成立且该条件成立,则执行对应的代码块。
    • else:可选的,默认情况,当所有的 ifelse if 条件都不成立时执行的代码块。
示例:
int score = 85;

if (score >= 90) {
    printf("优秀\n");
} else if (score >= 80) {
    printf("良好\n");
} else if (score >= 70) {
    printf("中等\n");
} else if (score >= 60) {
    printf("及格\n");
} else {
    printf("不及格\n");
}

在上面的示例中,根据 score 的值,程序会打印出相应的评分等级。

3.2 循环语句

循环语句用于重复执行一段代码,直到达到指定的条件。C语言中有 forwhiledo-while 三种循环语句。

for 循环

for 循环通过设置初始值、条件表达式和更新表达式来控制循环次数。

for (int i = 0; i < 10; i++) {
    // 循环体中的代码
}
  • 语法
    • for (initialization; condition; update)
      • initialization:在循环开始前执行的初始化语句,通常用于初始化循环变量。
      • condition:在每次迭代开始前检查的条件,如果为真则执行循环体,否则退出循环。
      • update:在每次循环体执行完毕后执行的表达式,通常用于更新循环变量。
示例:
for (int i = 0; i < 10; i++) {
    printf("%d ", i);  // 打印0到9之间的数字
}
while 循环

while 循环根据条件表达式的真假来重复执行代码块,条件表达式在每次迭代之前进行检查。

int i = 0;
while (i < 10) {
    // 循环体中的代码
    i++;
}
  • 语法
    • while (condition)
      • condition:在每次迭代开始前检查的条件,如果为真则执行循环体,否则退出循环。
示例:
int i = 0;
while (i < 10) {
    printf("%d ", i);  // 打印0到9之间的数字
    i++;
}
do-while 循环

do-while 循环先执行一次循环体,然后检查条件是否成立,如果条件为真则继续执行循环。

int i = 0;
do {
    // 循环体中的代码
    i++;
} while (i < 10);
  • 语法
    • do { // 循环体 } while (condition);
    • condition:在每次迭代之后检查的条件,如果为真则继续执行循环,否则退出循环。
示例:
int i = 0;
do {
    printf("%d ", i);  // 打印0到9之间的数字
    i++;
} while (i < 10);
3.3 跳转语句

跳转语句用于控制程序的执行流程,包括 breakcontinuegoto

break 语句

break 语句用于立即终止包含它的 for 循环、while 循环或 switch 语句。

for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break;  // 当i等于5时跳出循环
    }
}
  • break 语句使程序流程立即跳出当前循环或 switch 语句。
continue 语句

continue 语句用于跳过当前循环中剩余的语句,并继续下一次循环的执行。

for (int i = 0; i < 10; i++) {
    if (i == 5) {
        continue;  // 当i等于5时跳过本次循环,继续下一次循环
    }
    printf("%d ", i);  // 打印除了5以外的数字
}
  • continue 语句用于提前结束当前循环的迭代,继续下一次迭代。
goto 语句

goto 语句用于无条件地将控制转移到带有标签的代码块中的某个位置。

goto label;
// 其他代码
label:
// 跳转到这里执行标签处的代码
  • 注意goto 语句通常被视为不良编程实践,因为它可以使程序结构不清晰和难以维护。

4. 函数详解

4.1 函数的定义

在C语言中,函数是执行特定任务的代码块。函数由函数名、参数列表、返回类型、函数体组成。

函数定义的一般形式:
返回类型 函数名(参数列表) {
    // 函数体
    return 返回值;
}
  • 返回类型:函数执行完毕后返回的数据类型。如果函数不返回任何值,返回类型为 void
  • 函数名:函数的标识符,用来调用函数。
  • 参数列表:函数接受的输入,可以是零个或多个参数。
  • 函数体:包含函数执行的代码块。
  • 返回值:函数执行完毕后返回的值,与返回类型一致。
示例:
// 函数原型声明
int add(int, int);

// 函数定义
int add(int a, int b) {
    int sum = a + b;
    return sum;
}

在这个例子中:

  • add 是函数名。
  • (int a, int b) 是参数列表,表示函数接受两个 int 类型的参数。
  • int 是返回类型,函数执行完毕后返回一个 int 类型的值。
  • 函数体中的 int sum = a + b; 计算了参数 ab 的和,然后通过 return sum; 返回这个和作为函数的结果。
4.2 函数的声明

函数声明告诉编译器函数的存在、名称、返回类型以及参数列表。通常在使用函数之前进行声明。

函数声明的目的:
  • 告诉编译器函数的原型,以便在调用函数时进行类型检查。
  • 允许在一个文件中使用定义在另一个文件中的函数。
函数声明的形式:
返回类型 函数名(参数列表);
示例:
// 函数原型声明
int add(int, int);

// 函数定义
int add(int a, int b) {
    int sum = a + b;
    return sum;
}

在这个例子中,int add(int, int);add 函数的声明,告诉编译器有一个名为 add 的函数,它接受两个 int 类型的参数并返回一个 int 类型的值。

4.3 函数的调用

函数通过函数名和传递给它的参数来调用。

调用函数的一般形式:
返回类型 变量名 = 函数名(参数列表);
示例:
int result = add(5, 3);

这个例子中,add(5, 3) 调用了 add 函数,并将参数 53 传递给函数。int result = 将函数返回的结果赋值给 result 变量。

4.4 函数参数与返回值
函数参数

函数可以接受零个或多个参数。参数列表指定了函数接受的参数类型和顺序。

返回类型 函数名(参数类型1 参数名1, 参数类型2 参数名2, ...) {
    // 函数体
    return 返回值;
}
示例:
int add(int a, int b) {
    int sum = a + b;
    return sum;
}

这个例子中,add 函数有两个 int 类型的参数 ab

函数返回值

函数可以返回一个值,返回值的类型由函数的返回类型指定。如果函数没有返回值,返回类型应为 void

返回类型 函数名(参数列表) {
    // 函数体
    return 返回值;
}
示例:
int add(int a, int b) {
    int sum = a + b;
    return sum;
}

这个例子中,add 函数返回两个参数 ab 的和作为 int 类型的结果。

4.5 函数示例
计算阶乘的例子:
#include <stdio.h>

// 函数原型声明
int factorial(int);

int main() {
    int n = 5;
    int fact = factorial(n);  // 调用factorial函数计算阶乘
    printf("Factorial of %d = %d\n", n, fact);
    return 0;
}

// 函数定义:计算阶乘
int factorial(int n) {
    if (n == 0 || n == 1) {
        return 1;
    } else {
        return n * factorial(n - 1);
    }
}

在这个例子中:

  • factorial 函数计算输入 n 的阶乘。
  • main 函数调用 factorial 函数,并输出计算结果。

这样,你就可以更详细地了解C语言中函数的定义、声明、调用以及参数与返回值的使用方法了。

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值