首页 > 编程语言 >C++ 入门02:控制结构和循环

C++ 入门02:控制结构和循环

时间:2024-07-08 19:26:47浏览次数:19  
标签:02 语句 循环体 int C++ std while 循环 控制结构

往期回顾:

C++ 入门01:初识 C++


一、前言

在上一篇文章学习中,我们了解了 C++ 程序的基本结构、注释、数据类型、变量以及输入输出的基本用法。这一篇,我们将继续深入学习 C++ 的控制结构和循环。

二、控制结构和循环

2.1、 条件语句

条件语句是编程中非常重要的一部分,它们允许程序根据特定的条件或条件组合来决定执行哪段代码。在C++中,条件语句是控制流的一种形式,用于根据表达式的值(真或假)来决定程序的执行路径。C++ 中常见的条件语句有 if 语句、else if 语句和 else 语句。

(1)if 语句

C++中最基本的条件语句是if语句。它允许程序检查一个条件,如果条件为真(即表达式的值为非零),则执行一段特定的代码块。如果条件为假(即表达式的值为零),则跳过该代码块,继续执行if语句之后的代码。

示例:

#include <iostream>

int main() {
    int age;
    std::cout << "Enter your age: ";
    std::cin >> age;

    if (age >= 18) {
        std::cout << "You are an adult." << std::endl;
    }

    return 0;
}

(2)else 语句

else语句是可选的,它用于if(或else if)语句之后,以指定当所有前面的条件都不满足时应执行的代码块。这是一种确保至少有一段代码被执行的方法,无论条件如何。

示例:

#include <iostream>

int main() {
    int age;
    std::cout << "Enter your age: ";
    std::cin >> age;

    if (age >= 18) {
        std::cout << "You are an adult." << std::endl;
    } else {
        std::cout << "You are not an adult." << std::endl;
    }

    return 0;
}

 (3)else if 语句

else if语句是if语句的扩展,它允许程序检查多个条件。当第一个if语句的条件不满足时,else if语句会检查其条件,如果满足,则执行相应的代码块。这个过程可以重复进行,以检查多个条件。

 示例:

#include <iostream>

int main() {
    int score;
    std::cout << "Enter your score: ";
    std::cin >> score;

    if (score >= 90) {
        std::cout << "Grade: A" << std::endl;
    } else if (score >= 80) {
        std::cout << "Grade: B" << std::endl;
    } else if (score >= 70) {
        std::cout << "Grade: C" << std::endl;
    } else {
        std::cout << "Grade: F" << std::endl;
    }

    return 0;
}

2.2、循环语句 

循环语句在C++中用于重复执行一段代码块,直到满足特定的条件为止。C++提供了三种基本的循环结构:for循环、while循环和do-while循环,每种循环都有其特定的用途和语法。

(1)for 循环

for循环是最常用的循环结构之一,它特别适用于当你知道循环需要执行的确切次数时。for循环的语法如下:
for (初始化表达式; 循环条件; 更新表达式) {  
    // 循环体  
}

初始化表达式

在循环开始前执行一次,通常用于初始化一个或多个循环控制变量。
循环条件在每次循环开始前检查。如果条件为真(非零),则执行循环体;如果为假(零),则退出循环。
更新表达式在每次循环体执行完毕后执行,通常用于更新循环控制变量的值。

示例:

#include <iostream>

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

    return 0;
}

(2)while 循环

while循环在给定条件为真时重复执行一段代码。与for循环不同,while循环没有内置的初始化或更新表达式;这些操作需要在循环体内部或通过其他方式完成。while循环的语法如下:
while (循环条件) {  
    // 循环体  
    // 更新循环控制变量的值(通常在循环体内)  
}

注意:如果循环条件在循环开始前就为假,则循环体一次也不会执行。 

 示例:

#include <iostream>

int main() {
    int i = 0;
    while (i < 5) {
        std::cout << "i = " << i << std::endl;
        i++;
    }

    return 0;
}

(3)do-while 循环

do-while循环与while循环类似,但主要区别在于do-while循环至少会执行一次循环体,因为循环体的执行是在检查循环条件之前进行的。do-while循环的语法如下:
do {  
    // 循环体  
    // 更新循环控制变量的值(通常在循环体内)  
} while (循环条件);

注意:无论循环条件在循环开始前是否为真,do-while循环的循环体都会至少执行一次。然后,在每次循环体执行完毕后,都会检查循环条件;如果条件为真,则继续执行循环体;如果为假,则退出循环。 

示例:

#include <iostream>

int main() {
    int i = 0;
    do {
        std::cout << "i = " << i << std::endl;
        i++;
    } while (i < 5);

    return 0;
}

 2.3、 跳转语句

跳转语句用于控制循环的执行,在循环结构中改变执行流程。break 和 continue 是两种常用的跳转语句,它们主要在循环(如 forwhiledo-while 循环)中使用,但也可以在其他控制结构中(如 switch 语句)中看到 break 的使用。

(1)break 语句

break 语句用于完全终止当前所在的循环,即无论是哪种类型的循环,break 都会使程序控制流跳出该循环,并继续执行循环之后的语句。这在某些条件达成后希望提前退出循环时非常有用。

示例:

#include <iostream>

int main() {
    for (int i = 0; i < 10; i++) {
        if (i == 5) {
            break;
        }
        std::cout << "i = " << i << std::endl;
    }

    return 0;
}

(2)continue 语句 

continue 语句用于跳过当前循环的剩余部分,并直接开始下一次循环的迭代(如果有的话)。这意味着 continue 后面的所有语句在当前迭代中都不会被执行,程序控制流会回到循环的顶部,重新评估循环条件,并可能开始下一次迭代。

 示例:

#include <iostream>

int main() {
    for (int i = 0; i < 10; i++) {
        if (i == 5) {
            continue;
        }
        std::cout << "i = " << i << std::endl;
    }

    return 0;
}

注意:

break 和 continue 语句通常与条件语句(如 if)结合使用,以在特定条件下改变循环的执行流程。

break 可以用于 switch 语句中,用于退出整个 switch 块。
在嵌套循环中,break 只会退出最内层的循环。如果需要退出多层循环,可以考虑使用标签(在 Java、C# 等语言中)或其他逻辑控制手段。
continue 语句不适用于循环之外的任何地方,因为它是设计用来影响循环内部流程控制的。

以上就是 C++ 中的控制结构和循环基本用法的知识点了。

都看到这里了,点个赞再走呗朋友~

加油吧,预祝大家变得更强!

标签:02,语句,循环体,int,C++,std,while,循环,控制结构
From: https://blog.csdn.net/LF__plus/article/details/140276699

相关文章

  • 北京一零一中2024年信息学迎新马拉松解题报告
    AT469715[2024迎新马拉松]101相当于选择一段长度为\(3k\)的区间使得变化的总值最小。维护每一个元素变化到\(1\)与\(0\)的要求数量,之后前缀和处理即可。#include<bits/stdc++.h>#defineendl"\n"usingnamespacestd;typedeflonglongll;constllMAXN=1e6+5;......
  • Altair携手奇瑞汽车,荣获2024世界人工智能大会“AI赋能新型工业化创新应用优秀案例”
    2024年7月4-7日,2024世界人工智能大会(WAIC)在上海世博中心成功举办。4日下午,“AI赋工业,数智启未来—人工智能赋能新型工业化主题论坛”在上海世博中心召开。Altair携手奇瑞汽车股份有限公司申报的“基于AI的降阶建模实现新能源汽车高低温续航高效集成仿真”案例在本次大会中......
  • 跟《经济学人》学英文:2024年07月06日这期:How Starbucks caffeinates local economies
    HowStarbuckscaffeinateslocaleconomiesCallitthefrappuccinoeffectfrappuccino:星冰乐星巴克如何刺激当地经济:称之为星冰乐效应原文:Starbucksoffersendlessopportunitiesforinnovation.Partsofsocialmediadelightinhackingthechain’smenuto......
  • 01day C++初入学习
    这里写目录标题1.C++区别于C的输入输出2.什么是命名空间3.namespace的定义namespace的使用(1)namespace嵌套使用(2)多⽂件中可以定义同名namespace(3)4.命名空间的使用5.C++输⼊&输出6.缺省参数7.函数重载8.引用8.1引用的特性8.3引用的使用1.C++区别于C的输入输出......
  • 2024全球数字经济大会:大模型时代下DataOps驱动企业数智化升级
    7月5日,以“开源生态筑基础,数字经济铸未来”为主题的2024全球数字经济大会在北京成功举办,来自全国各地的专家学者、企业代表、数据库行业从业人士及众多开源开发者,共聚一堂,共同探讨开源数据库技术的发展现状与未来趋势,助力构建开放、共赢的数据库生态体系,为开源生态的繁荣发展添砖......
  • 代码随想录算法训练营第五天|LeetCode242.有效的字母异位词 LeetCode 349. 两个数组的
    代码随想录算法训练营Day5代码随想录|LeetCode242.有效的字母异位词LeetCode349.两个数组的交集LeetCode202.快乐数LeetCode1.两数之和文章目录代码随想录算法训练营前言代码随想录原文--哈希表今天的内容真的很有挑战o(╥﹏╥)o,做了很久一、哈希表基础理论1......
  • C++ string基础用法
    基本操作构造与初始化默认构造:创建一个空字符串 std::strings;从C风格字符串构造:std::strings="Hello";从范围构造:std::strings(begin,end);从迭代器构造:std::strings(it_begin,it_end);从字符数组构造:std::strings(arr,arr+size);从重复字符构造:std::stri......
  • 代码随想录算法训联营第四天|LeetCode24. 两两交换链表中的节点 LeetCode19.删除链表
    系列文章目录代码随想录算法训练营第四天:代码随想录|LeetCode24.两两交换链表中的节点LeetCode19.删除链表的倒数第N个节点面试题02.07.链表相交LeetC142.环形链表文章目录系列文章目录前言一、LeetCode24.两两交换链表中的节点1、题目链接2、题解二、LeetCod......
  • c++我的世界代码(亲测有效)
    #include<iostream>#include<conio.h>#include<string>#include<map>#include<cmath>#include<windows.h>#include<time.h>#defineKEY_DOWN(VK_NONAME)((GetAsyncKeyState(VK_NONAME)&0x8000)?1:0)void......
  • 02.Slice 切片
    切片(Slice)是Go语言中比数组更为灵活和强大的数据结构。切片本质上是对数组的一个视图,可以动态调整大小。下面详细介绍切片的定义、初始化、操作和使用注意事项。切片的定义与初始化切片的定义语法为:[]T,其中T表示切片元素的类型。切片的初始化可以通过数组字面量、内置函数m......