首页 > 编程语言 >【C++学习笔记】逻辑判断语句与循环语句(二)

【C++学习笔记】逻辑判断语句与循环语句(二)

时间:2024-09-09 08:52:59浏览次数:13  
标签:语句 cout int 枚举 笔记 while 循环 C++

目录

一、逻辑判断语句

1.1 if else语句

1.2 switch语句

1.3 枚举类型

二、循环语句

2.1 while循环

2.2 do while循环

2.3 for循环

2.4 break与continue关键字

2.5 goto语句


一、逻辑判断语句

1.1 if else语句

#include "iostream"
using namespace std;

int main(){

    int money = 10000;

    if (money > 10000) {
        cout << "月薪过万" << endl;
    } else if (money < 10000) {
        cout << "月薪没过万" << endl;
    } else {
        cout << "月薪正好1万" << endl;
    }

    return 0;
}

1.2 switch语句

switch(expression):expression类型为整型(int、short、char)和 枚举类型

#include "iostream"
using namespace std;

int main(){

    int num;
    cout << "请输入数字来告知是星期几(1-7):" << endl;
    cin >> num;

    switch (num) {
        case 1:
            cout << "星期一" << endl;
            break;
        case 2:
            cout << "星期二" << endl;
            break;
        case 3:
            cout << "星期三" << endl;
            break;
        case 4:
            cout << "星期四" << endl;
            break;
        case 5:
            cout << "星期五" << endl;
            break;
        case 6:
            cout << "星期六" << endl;
            break;
        case 7:
            cout << "星期日" << endl;
            break;
        default:
            cout << "输入参数错误!!!" << endl;
    }

    return 0;
}

break语句可以中断switch语句,否则向下执行其它case段(包括default段),直到执行完或遇到break为止。

1.3 枚举类型

枚举:本质上是一个被命名的整型常数的集合

  • 在C\C++语言中它是一种基本数据类型。
  • 其主要作用是提高代码的可读性、可维护性和键入性。
  • 因为枚举可以将一些数字或字符串符号化,以此增强程序的可读性和可维护性。

比如某些固定状态的判断,如:
对季节进行判断,如:”春”、”夏”、”秋”、”冬”

看左侧的代码,我们会很难读懂,因为我们不知道1 2 3 4 都是什么,但如果用枚举(右侧代码),我们很轻松就知道spring是春天。

#include "iostream"
using namespace std;

int main(){
    
    // 定义天气枚举
    enum Weather {
        SPRING = 1,
        SUMMER = 2,
        AUTUMN = 3,
        WINTER = 4
    };

    cout << SPRING << endl;

    return 0;
}

二、循环语句

2.1 while循环

#include "iostream"
using namespace std;

int main(){

    int count = 0; // 计数器
    while (count < 6) {
        cout << count << endl;
        count++;
    }

    return 0;
}

2.2 do while循环

do while循环是while循环的一个变换形式。和while循环在功能上有一点不同:

  • while循环,如果条件判断不成立,可以做到一次都不执行循环体的代码
  • do while循环,如果条件判断不成立,最少会执行一次循环体的代码
#include "iostream"
using namespace std;

int main(){

    int count = 0; // 计数器
    do {
        // 不满足条件至少会执行一次
        cout << count << endl;
    } while (count > 0);

    return 0;
}

2.3 for循环

#include "iostream"
using namespace std;

int main(){

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

    return 0;
}

2.4 break与continue关键字

在循环中可以使用:

  • continue关键字,跳过本次循环,进入下一次
  • break关键字,直接结束所在循环

注意:在嵌套循环中,只能作用在所在的循环上,无法对上层循环起作用。

2.5 goto语句

我们在前面学习过continue和break,其作用是控制程序执行有条件跳转。
C++提供了goto语句,可以提供无条件跳转的功能。

标签:语句,cout,int,枚举,笔记,while,循环,C++
From: https://blog.csdn.net/qq_38196449/article/details/142001560

相关文章

  • 【C++】list(下)
    个人主页~list(上)~list四、模拟实现1、list.h(1)关于整个list的搭建①节点②迭代器③接口(2)自定义类型实例化2、test.cpp(1)test1(2)test2五、额外小知识四、模拟实现1、list.h#pragmaonce#include<iostream>namespacelittle_monster{ template<classT> ......
  • c++的初始化列表与const成员
    初始化列表与const成员const成员使用const修饰的类、结构、联合的成员变量,在类对象创建完成前一定要初始化。不能在构造函数中初始化const成员,因为执行构造函数时,类对象已经创建完成,只有类对象创建完成才能调用成员函数,构造函数虽然特殊但也是成员函数。在定义const成员时......
  • c++的构造函数与析构函数
    构造函数与析构函数构造函数1、什么构造函数类、结构、联合中的特殊成员函数,与类名、结构名、联合名同的成员函数,没有返回值。class类名{public:  类名(参数列表) {     }};2、何时调用构造函数当创建类对象时(实例化对象)会自动调用构造函......
  • 【算法笔记】多源最短路问题——Floyd算法
    0.前言在图中,如果要求任意两点间的距离,则可以使用Floyd(\(\mathcalO(N^3)\)......
  • 【算法笔记】单源最短路问题——Dijkstra算法(无优化/优先队列/set优化)
    0.前言Dijkstra算法可在\(\mathcalO(m\logm)\)或\(\mathcalO(m\logn)\)的时间内求解无负权单源最短路问题。本文中,我们将详细介绍算法的原理、实现,以及常用的两种优化。另外,Dijkstra算法也不要乱用,比如说多源的最短路,用Dijkstra求解的复杂度只有\(\mathcalO(nm\logm)\),但......
  • 【算法笔记】三种背包问题——背包 DP
    前言背包(Knapsack)问题是经典的动态规划问题,也很有实际价值。01背包洛谷P2871[USACO07DEC]CharmBraceletSAtCoderEducationalDPContestD-Knapsack1有\(n\)个物品和一个总容量为\(W\)的背包。第\(i\)件物品的重量是\(w_i\),价值是\(v_i\)。求解将哪些物品装入背包......
  • 【算法笔记】Kruskal/Prim算法——求解最小生成树问题
    前言生活中经常遇到类似这种的问题:公路修建有一些城市,城市之间要修建高速公路,每两个城市之间都可以修双向的路。其中每两个城市之间修路都需要花费对应的金额。请问如何修路,使得总花费的金额最少,且任意两个城市之间都可以直接或间接通过修建的路来通行?实际上,我们可以把这种......
  • 【算法笔记】树状数组/Binary Indexed Tree/Fenwick Tree
    前言树状数组,即树形存储的数组,又称BinaryIndexedTree或FenwickTree。抛开它树形的存储结构,这种神奇的数据结构的应用看起来与「树」没什么关系:有一个序列\(A=(A_1,A_2,\dots,A_N)\),在不超过\(\mathcalO(\logN)\)的时间复杂度内完成下列操作:\(\to~\)求\([L,R]\)区间内所......
  • 【算法笔记】位运算详解
    0.前言突然想到位运算是个好东西,就来水一波文章了……注意:我把能想到的有关位运算的所有内容都放进来了,所以篇幅较长,请谅解!若有写的不清楚或者不够详细的地方欢迎在评论区补充,谢谢支持!本文中参考代码均使用C++编写。废话不多说,下面步入正题。1.基本运算有一定基础的可以......
  • 【算法笔记】最近公共祖先(LCA)问题求解——倍增算法
    0.前言最近公共祖先简称LCA(LowestCommonAncestor)。两个节点的最近公共祖先,就是这两个点的公共祖先里面,离根最远的那个。这种算法应用很广泛,可以很容易解决树上最短路等问题。为了方便,我们记某点集\(S=\{v_1,v_2,\ldots,v_n\}\)的最近公共祖先为\(\text{LCA}(v_1,v_2,\ld......