首页 > 编程语言 >C++(for)

C++(for)

时间:2024-09-05 14:06:35浏览次数:1  
标签:std int C++ break 循环 include

目录



C++ 中有多种形式的 for 循环,每种形式适合不同的应用场景。



1. 经典的 for 循环

这是 C++ 中最基础的循环类型,由三部分组成:初始化、条件、迭代表达式。

语法

for (initialization; condition; increment) {
    // code block
}
  • initialization:在循环开始时执行一次。通常用于初始化循环计数器变量。
  • condition:每次迭代前进行检查,如果为真,则继续循环,如果为假,则退出循环。
  • increment:每次迭代后执行,通常用于更新循环计数器。

示例

#include <iostream>
using namespace std;

int main() {
    for (int i = 0; i < 5; ++i) {
        cout << "i = " << i << endl;
    }
    return 0;
}

输出

i = 0
i = 1
i = 2
i = 3
i = 4


2. 基于范围的 for 循环(C++11 引入)

基于范围的 for 循环允许您遍历数组或容器中的所有元素,而不需要显式管理循环计数器。它非常适合遍历 STL 容器(如 std::vector)、C 风格数组等。

语法

for (declaration : container) {
    // code block
}
  • declaration:用于声明遍历元素的变量。通常是一个引用或拷贝。
  • container:可以是数组或任何支持 begin()end()容器。

示例

#include <iostream>
#include <vector>
using namespace std;

int main() {
    vector<int> numbers = {1, 2, 3, 4, 5};
    
    for (int num : numbers) {
        cout << num << " ";
    }
    cout << endl;
    
    // 使用引用修改元素
    for (int& num : numbers) {
        num *= 2;
    }
    
    for (int num : numbers) {
        cout << num << " ";
    }
    
    return 0;
}

输出

1 2 3 4 5 
2 4 6 8 10 


3. 无限 for 循环

如果条件部分永远为真,或者没有条件部分,for 循环会变成无限循环。这在某些特定情况下非常有用,但通常需要结合 break 语句以终止循环。

语法

for (;;) {
    // code block
    if (some_condition) {
        break;  // 跳出循环
    }
}

示例

#include <iostream>
using namespace std;

int main() {
    int i = 0;
    for (;;) {  // 无限循环
        cout << "i = " << i << endl;
        if (i >= 5) {
            break;  // 跳出循环
        }
        i++;
    }
    return 0;
}

输出

i = 0
i = 1
i = 2
i = 3
i = 4
i = 5


4. 嵌套 for 循环

for 循环可以嵌套使用,这通常用于遍历多维数组或处理复杂的算法,如矩阵运算等。

语法

for (initialization1; condition1; increment1) {
    for (initialization2; condition2; increment2) {
        // nested code block
    }
}

示例

#include <iostream>
using namespace std;

int main() {
    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j < 3; ++j) {
            cout << "(" << i << ", " << j << ") ";
        }
        cout << endl;
    }
    return 0;
}

输出

(0, 0) (0, 1) (0, 2) 
(1, 0) (1, 1) (1, 2) 
(2, 0) (2, 1) (2, 2)


5. 使用 continuebreak 控制循环流

  • break:用于立即退出循环,不再执行循环体中的其余部分。
  • continue:用于跳过当前迭代的剩余部分,直接进入下一次迭代。

示例(结合 continuebreak):

#include <iostream>
using namespace std;

int main() {
    for (int i = 0; i < 10; ++i) {
        if (i == 5) {
            continue;  // 跳过本次循环,直接进入下次迭代
        }
        if (i == 8) {
            break;  // 退出循环
        }
        cout << "i = " << i << endl;
    }
    return 0;
}

输出

i = 0
i = 1
i = 2
i = 3
i = 4
i = 6
i = 7


总结

  • 经典 for 循环:适合需要显式控制循环变量的情况。
  • 基于范围的 for 循环:更简洁,适合遍历容器和数组。
  • 嵌套 for 循环:用于处理多维数据。
  • 无限 for 循环:在某些场景下用于等待条件或持续处理任务,注意使用 break 语句控制循环的终止。

在实际编程中,选择合适的 for 循环形式能帮助编写更清晰和简洁的代码。



标签:std,int,C++,break,循环,include
From: https://www.cnblogs.com/keye/p/18398287

相关文章

  • C++ 模板(函数模板)
    模板模板介绍C++提供了函数模板(functiontemplate)。所谓函数模板。实际上是建立一个通用函数,其函数类型和形参类型不具体制定,用一个虚拟的类型来代表。这个通用函数就称为函数模板。凡事函数体相同的函数都可以使用这个模板代替,不必定义多个函数,只需在模板中定义一次即可。在调......
  • C++: std::once_flag 和 std::call_once
    std::once_flag和std::call_oncestd::once_flag和std::call_once是C++11引入的同步原语,用于确保某个函数在多线程环境中只被执行一次。它们位于头文件中,主要用于实现线程安全的初始化操作。std::once_flag概述类型:std::once_flag是一个结构体,用于记录某个函数......
  • C++ 原子变量atomic variable
    原子变量原子变量(atomicvariable)是C++11引入的一种同步机制,用于在多线程环境中进行无锁的、线程安全的操作。原子变量的操作是不可分割的,即在执行过程中不会被其他线程中断,从而避免了数据竞争和不一致的问题。原子变量位于头文件中。基本概念原子性原子性:一个操作是......
  • C++和Python混合编程——C++调用Python入门
    大纲代码结构初始化Python解释器获取GIL为什么需要GIL?GIL的影响导入Python模块并执行代码释放GIL终止Python解释器完整代码编译执行结果项目地址在《C++和Python混合编程——Python调用C++入门》一文中,我们熟悉了Python调用C++编译的动态库的方法。但是作......
  • C++11新特性
    C++11主要新特性有类的初始化与函数、新增关键字、std库新特性、lambda表达式、智能指针、线程1.关键字()nullptr取代NULL、0()constexpr:显式声明函数返回值、变量是一个常量表达式()auto:对变量类型推导,()decltype:对表达式类型推导,用法为decltype(表达式)()using:声明使用的命......
  • C++高精度乘法
    #include<iostream>#include<string>#include<cstring>usingnamespacestd;intmain(){stringstr1,str2;cin>>str1>>str2; //确定字符串长度 intlen1=str1.length(); intlen2=str2.length(); //确认积......
  • 编译原理项目——C++实现C语言编译器输出为gcc级汇编(代码/报告材料)
    完整的代码材料见文章末尾以下为核心内容和部分结果项目介绍function.cpp实现了共有的函数lexer.cpp词法分析器get_predict_table.cpp获取预测分析表LR.cpp语法分析generate.cpp语义分析中间代码生成to_asm.cpp目标代码生成部分核心代码LR分析#include"co......
  • 【C++】封装
    目录1.访问控制符2.封装的目的2.1.数据隐藏和保护2.2.接口与实现的分离2.3.控制访问3.封装的好处3.1.提高代码的安全性3.2.减少错误3.3.提高代码的可维护性3.4.增强代码的可读性3.5.促进模块化设计3.6.提高代码的可重用性3.7.支持面向对象的设计原则......
  • VScode「配置自动代码格式化C/C++」
    前言        你好,我是小莱,希望输出高质量的内容。        在大厂实习的过程中,我发现很多资深的开发者都习惯自己敲空格,按照公司的代码规范使用标尺来提示自己什么时候该换行。也许这样做可以增加代码编辑时的灵活性,但对于新入职场(用惯了VS)的小白来说,无疑大......
  • 《C++中的反射机制:开启高级编程之门》
    一、引言在现代编程中,反射机制是一种强大的工具,它允许程序在运行时检查和操作对象的结构和行为。虽然C++语言本身并没有内置的反射机制,但通过一些技巧和技术,我们可以在C++中实现类似的功能。本文将深入探讨如何在C++中实现反射机制,以及它在实际编程中的应用。二、什么......