目录

C-控制结构与函数全面解析

C++ 控制结构与函数全面解析

引言

在 C++ 编程中,控制结构和函数是构建程序逻辑的关键要素。控制结构能够决定程序的执行流程,而函数则可以将代码模块化,提高代码的复用性和可维护性。本文将深入介绍 C++ 中的控制结构和函数的相关知识。

一、控制结构

1. if - else 语句

if - else 语句是 C++ 中最基本的条件判断结构,用于根据条件的真假来决定执行不同的代码块。

基本语法
if (condition) {
    // 如果条件为真,执行此代码块
} else {
    // 如果条件为假,执行此代码块
}
示例代码
#include <iostream>
int main() {
    int score = 85;
    if (score >= 60) {
        std::cout << "恭喜,你及格了!" << std::endl;
    } else {
        std::cout << "很遗憾,你不及格。" << std::endl;
    }
    return 0;
}
嵌套 if - else

if - else 语句可以嵌套使用,以处理更复杂的条件判断。

#include <iostream>
int main() {
    int score = 85;
    if (score >= 90) {
        std::cout << "优秀!" << std::endl;
    } else if (score >= 80) {
        std::cout << "良好!" << std::endl;
    } else if (score >= 60) {
        std::cout << "及格!" << std::endl;
    } else {
        std::cout << "不及格!" << std::endl;
    }
    return 0;
}

2. switch - case 语句

switch - case 语句用于根据一个表达式的值来选择执行不同的代码分支,通常用于处理多个固定值的情况。

基本语法
switch (expression) {
    case constant1:
        // 当 expression 等于 constant1 时执行此代码块
        break;
    case constant2:
        // 当 expression 等于 constant2 时执行此代码块
        break;
    default:
        // 如果 expression 不等于任何一个 case 中的常量,执行此代码块
        break;
}
示例代码
#include <iostream>
int main() {
    int day = 3;
    switch (day) {
        case 1:
            std::cout << "星期一" << std::endl;
            break;
        case 2:
            std::cout << "星期二" << std::endl;
            break;
        case 3:
            std::cout << "星期三" << std::endl;
            break;
        default:
            std::cout << "其他" << std::endl;
            break;
    }
    return 0;
}

3. for / while 循环

循环结构用于重复执行一段代码,C++ 中主要有 for 循环和 while 循环。

for 循环

for 循环通常用于已知循环次数的情况。

基本语法
for (initialization; condition; increment) {
    // 循环体
}
示例代码
#include <iostream>
int main() {
    for (int i = 0; i < 5; i++) {
        std::cout << i << std::endl;
    }
    return 0;
}
while 循环

while 循环用于在条件为真时重复执行代码块,适用于不确定循环次数的情况。

基本语法
while (condition) {
    // 循环体
}
示例代码
#include <iostream>
int main() {
    int i = 0;
    while (i < 5) {
        std::cout << i << std::endl;
        i++;
    }
    return 0;
}
do - while 循环

do - while 循环与 while 循环类似,但它会先执行一次循环体,再判断条件。

基本语法
do {
    // 循环体
} while (condition);
示例代码
#include <iostream>
int main() {
    int i = 0;
    do {
        std::cout << i << std::endl;
        i++;
    } while (i < 5);
    return 0;
}

二、函数

1. 定义与声明

函数是一段具有特定功能的代码块,通过函数可以将程序分解为多个小的模块,提高代码的复用性。

函数定义
return_type function_name(parameter_list) {
    // 函数体
    return value;
}
示例代码
#include <iostream>
// 函数定义
int add(int a, int b) {
    return a + b;
}

int main() {
    int result = add(3, 5);
    std::cout << "结果: " << result << std::endl;
    return 0;
}
函数声明

在使用函数之前,需要先进行函数声明,以告知编译器函数的存在。函数声明可以省略参数名,但要保留参数类型。

return_type function_name(parameter_types);
示例代码
#include <iostream>
// 函数声明
int add(int, int);

int main() {
    int result = add(3, 5);
    std::cout << "结果: " << result << std::endl;
    return 0;
}

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

2. 参数传递

函数参数传递有两种方式:值传递和引用传递。

值传递

值传递是将实参的值复制一份传递给形参,在函数内部对形参的修改不会影响实参。

示例代码
#include <iostream>
void swap(int a, int b) {
    int temp = a;
    a = b;
    b = temp;
}

int main() {
    int x = 3, y = 5;
    swap(x, y);
    std::cout << "x = " << x << ", y = " << y << std::endl;
    return 0;
}
引用传递

引用传递是将实参的引用传递给形参,在函数内部对形参的修改会直接影响实参。

示例代码
#include <iostream>
void swap(int& a, int& b) {
    int temp = a;
    a = b;
    b = temp;
}

int main() {
    int x = 3, y = 5;
    swap(x, y);
    std::cout << "x = " << x << ", y = " << y << std::endl;
    return 0;
}

3. 返回值类型

函数可以有返回值,返回值类型可以是任意合法的数据类型,也可以是 void 表示不返回任何值。

示例代码
#include <iostream>
// 返回 int 类型
int getMax(int a, int b) {
    return (a > b) ? a : b;
}

// 返回 void 类型
void printMessage() {
    std::cout << "Hello, World!" << std::endl;
}

int main() {
    int max = getMax(3, 5);
    std::cout << "最大值: " << max << std::endl;
    printMessage();
    return 0;
}

三、总结

控制结构和函数是 C++ 编程的重要组成部分。 if - else 语句和 switch - case 语句用于实现条件判断,控制程序的执行流程; for 循环和 while 循环用于重复执行代码块。函数则可以将代码模块化,提高代码的复用性和可维护性。通过合理运用控制结构和函数,可以编写出更加高效、清晰的 C++ 程序。