c++语句详细介绍(二)

简介: c++语句详细介绍(二)

c++语句详细介绍(一)https://developer.aliyun.com/article/1437093

跳转语句

在C++中,跳转语句用于改变程序的控制流,使其从一个位置跳转到另一个位置。C++提供了几种跳转语句:break、continue、goto和return。这些语句在不同的上下文中有不同的用途和影响。以下是对这些跳转语句的详细介绍:


1. Break语句

  • 用途:用于立即终止最接近的封闭的switch语句或循环(for、while、do-while)。
  • 示例:在for循环中使用break跳出循环。
for (int i = 0; i < 10; i++) {
    if (i == 5) {
        break; // 当i等于5时跳出循环
    }
    std::cout << i << " ";
}


2. Continue语句

  • 用途:跳过当前循环的剩余部分,并继续下一次循环的迭代。
  • 示例:在for循环中使用continue跳过某些迭代。
for (int i = 0; i < 10; i++) {
    if (i % 2 == 0) {
        continue; // 跳过偶数迭代
    }
    std::cout << i << " ";
}


3. Goto语句


  • 用途:无条件跳转到同一函数内的标记位置。
  • 注意:虽然goto可以用于复杂的流程控制,但过度使用可能导致代码难以理解和维护,因此一般不推荐使用。

示例:跳转到标记的位置。

goto label;
std::cout << "This will be skipped";
label:
std::cout << "Jumped to label";

4. Return语句

  • 用途:从函数中返回一个值(如果函数有返回类型),或者结束一个void类型的函数的执行。
  • 示例:在函数中返回一个值。
int add(int a, int b) {
    return a + b; // 返回a和b的和
}

try语句块和异常处理

在C++中,异常处理是一种用于处理程序运行时可能发生的错误和异常情况的机制。异常处理的核心包括三个关键部分:try块、catch块和throw语句。这种机制提供了一种将错误检测和处理代码与正常逻辑代码分离的方法,从而使得代码更加清晰、可维护。


1. Try块

  • 用途:try块用于包含可能抛出异常的代码。如果try块中的代码抛出了异常,控制流将跳转到匹配的catch块。

格式:

try {
    // 可能抛出异常的代码
}

2. Catch块

  • 用途:catch块用于捕获和处理特定类型的异常。可以有多个catch块来处理不同类型的异常。
  • 格式:
catch (异常类型 参数) {
    // 处理异常的代码
}


3. Throw语句

  • 用途:throw语句用于抛出一个异常。可以抛出任何类型的数据,但通常是派生自std::exception的类的对象。


格式:

throw 异常对象;


4. 标准异常

  • C++标准库提供了一系列标准异常类,它们都派生自std::exception。这些异常类包括std::runtime_errorstd::out_of_range等。
  • 使用标准异常类可以使错误信息更标准化、易于理解。

代码示例

以下示例展示了如何在C++中使用异常处理:

#include <iostream>
#include <stdexcept> // 包含标准异常类

void testFunction(int a) {
    if (a == 0) {
        throw std::invalid_argument("a不能为0"); // 抛出异常
    }
    std::cout << "a的值是 " << a << std::endl;
}

int main() {
    try {
        testFunction(0); // 这将抛出一个异常
    } catch (const std::invalid_argument& e) {
        std::cerr << "捕获到异常: " << e.what() << std::endl;
    }
    return 0;
}
  • 使在这个示例中,如果testFunction接收到的参数为0,它将抛出std::invalid_argument异常。main函数中的try块尝试调用testFunction,并使用catch块来捕获和处理可能出现的异常。

总结

这篇主要讲了

简单语句,


语句作用域:变量和函数在程序中的可见性和有效性范围


条件语句:包括if、else if、else和switch语句,


迭代语句:涵盖了while、do-while和for循环,用于执行重复的操作,直到满足某个特定条件。


异常处理:使用try、catch和throw的异常处理机制,这对于编写能够优雅处理错误和异常情况的程序至关重要。


肝完,下一篇讲什么呢?


目录
相关文章
|
7月前
|
SQL 前端开发 Java
深入理解 Spring Boot 项目中的分页与排序功能
本文深入讲解了在Spring Boot项目中实现分页与排序功能的完整流程。通过实际案例,从Service层接口设计到Mapper层SQL动态生成,再到Controller层参数传递及前端页面交互,逐一剖析每个环节的核心逻辑与实现细节。重点包括分页计算、排序参数校验、动态SQL处理以及前后端联动,确保数据展示高效且安全。适合希望掌握分页排序实现原理的开发者参考学习。
456 4
|
Linux Shell Perl
在Linux中,如何使用sed命令进行文本替换?
在Linux中,如何使用sed命令进行文本替换?
|
运维 Linux 开发工具
第22篇 如何部署gitLab进行开发版本控制
第22篇 如何部署gitLab进行开发版本控制
|
11月前
|
存储 人工智能 编译器
【AI系统】自动微分的挑战&未来
本文详细探讨了自动微分的原理与实现,包括其在AI框架中的应用实例,指出自动微分技术面临的两大挑战——易用性和高效性能。文章分析了数学表达与程序表达间的差异对自动微分实现的影响,讨论了控制流表达、复杂数据类型、语言特性的处理难题,以及物理系统模拟对自动微分的需求。此外,还探讨了提高自动微分性能的方法,如合理选择中间结果存储点以平衡内存占用与运行速度。最后展望了自动微分的未来发展,特别是可微编程的概念及其在AI领域的应用前景。
241 7
|
机器学习/深度学习 人工智能 弹性计算
阿里云AI服务器价格表_GPU服务器租赁费用_AI人工智能高性能计算推理
阿里云AI服务器提供多种配置,包括CPU+GPU、CPU+FPGA等组合,支持高性能计算需求。本文整理了阿里云GPU服务器的价格信息,涵盖NVIDIA A10、V100、T4、P4、P100等型号,适合人工智能、机器学习和深度学习等计算密集型任务。具体价格和适用场景详见表格。
575 10
|
存储 搜索推荐
宝藏免费音乐软件LX music
宝藏免费音乐软件LX music
355 0
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【10月更文挑战第6天】本文比较了Python中三个最受欢迎的Web框架:Django、Flask和Pyramid。Django功能全面,适合快速开发;Flask灵活轻量,易于上手;Pyramid介于两者之间,兼顾灵活性和可扩展性。文章分析了各框架的优缺点,帮助开发者根据项目需求和个人偏好做出合适的选择。
286 4
|
PyTorch TensorFlow API
Transformers 4.37 中文文档(八十四)(4)
Transformers 4.37 中文文档(八十四)
360 4
|
缓存
Errors during downloading metadata for repository 'remi-modular' 问题如何解决?
Errors during downloading metadata for repository 'remi-modular' 问题如何解决?
1040 5