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_error
、std::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的异常处理机制,这对于编写能够优雅处理错误和异常情况的程序至关重要。
肝完,下一篇讲什么呢?