C++| C++ 入门教程 程序流程结构

Posted Yangtzi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++| C++ 入门教程 程序流程结构相关的知识,希望对你有一定的参考价值。

4 程序流程结构

C++支持最基本的三种程序运行结构:

  • 顺序结构
  • 选择结构
  • 循环结构

4.1 选择结构

4.1.1 if 语句

作用:执行满足条件的语句

if 语句可以嵌套叠加

单行格式 if 语句

if(条件){条件满足需要执行的语句;}

多行格式 if 语句

if(条件){条件满足执行的语句}else{条件不满足执行的语句}

多条件 if 语句
if(条件)
{满足的语句}
else if(条件2)
{满足条件1但不满足条件2的语句}
…
else
{都不满足的语句};

练习案例

有三只小猪ABC,请分别输入三只小猪的体重,并判断谁最重。

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

class Pig {
    string name;
    int weight;

public:
    Pig() { cout << "Pig constructed." << endl; }
    ~Pig() { cout << "Pig disconstructed." << endl; }

    void setName(string n) {
        name = n;
    }
    void setWeight(int w) {
        weight = w;
    }
    int getWeight() {
        return weight;
    }
    string getName() {
        return name;
    }
};

int main() {
    string name;
    int weight;

    Pig pigA;
    cout << "Please enter the name of pig A: ";
    cin >> name;
    pigA.setName(name);
    cout << "Please enter the weight of pig A: ";
    cin >> weight;
    pigA.setWeight(weight);

    Pig pigB;
    cout << "Please enter the name of pig B: ";
    cin >> name;
    pigB.setName(name);
    cout << "Please enter the weight of pig B: ";
    cin >> weight;
    pigB.setWeight(weight);

    Pig pigC;
    cout << "Please enter the name of pig C: ";
    cin >> name;
    pigC.setName(name);
    cout << "Please enter the weight of pig C: ";
    cin >> weight;
    pigC.setWeight(weight);

    if (pigA.getWeight() >= pigB.getWeight() && pigA.getWeight() >= pigC.getWeight()){
        cout << pigA.getName() << " is the heavieat." << endl;
    }
    else if (pigB.getWeight() >= pigA.getWeight() && pigB.getWeight() >= pigC.getWeight()){
        cout << pigB.getName() << " is the heavieat." << endl;
    }
    else{
        cout << pigC.getName() << " is the heavieat." << endl;
    }

    cin.get();
    return 0;
}

我在构造函数和解析函数中添加了输出语句。因此可以看出,如果不用new和delete的话,编译器也会自动地释放空间。

4.1.2 switch 语句

作用:执行多条件分支语句

语法:

switch(表达式)
{
    case 结果1:表达式1;break;
    case 结果2:表达式2;break;
    case 结果3:表达式3;break;
    case 结果4:表达式4;break;
    case 结果5:表达式5;break;
    ……
    default:表达式6;
}

注意:如果不加 break,后面的case之中的表达式会全部被执行!

if 和 switch 的区别;

switch 只能判断整型和字符型,不能判断一个区间

switch 结构清晰,执行效率更高。

问题:switch 能判断 C 风格或 C++ 风格字符串么?

回答:不行,但是可以判断枚举量。(晚上可以试一下)

尝试了一下枚举,感觉还不错。实际上枚举可以当成一组相关常量的使用方法,感觉用起来还是不错的。

#include<iostream>
using namespace std;

int main() {
    enum Color{red,green,yellow};

    Color color = red;
    int i = color;
    i++;
    color = Color(i);

    switch (color) {
    case red:
        cout << "The color is red." << endl;
        break;

    case green:
        cout << "The color is green. " << endl;
        break;

    case yellow:
        cout << "The color is yellow. " << endl;
        break;
    }

    return 0;
}

4.2 循环结构

4.2.1 while 循环

作用:满足循环条件,执行循环语句

语法:while( 循环条件 ){ 循环语句 }

4.2.2 do while 循环

作用:先执行,再不断循环执行语句

语法:

do{
    循环语句;
}while( 循环条件 );

PS. 需要注意,这个语句在while(循环条件)后需要加上分号。它相当于整个 do while 语句的结束。

#### 4.2.3 for 循环

作用:满足条件,执行循环语句

语法:for(起始表达式. 条件表达式, 末尾循环体){循环语句}

4.3 跳转语句

break: 跳出当前循环或 switch

continue: 结束这一次循环进入下一个循环

goto: 跳转到你标记的位置,可以用来跳出多层循环

语法:

goto 标记;
……
标记:
……

注意:标记的名称一般用纯大写;跳转的标记处,应该用冒号。

以上是关于C++| C++ 入门教程 程序流程结构的主要内容,如果未能解决你的问题,请参考以下文章

C++基础入门丨4. 程序结构有哪几种?——程序流程结构

C++基础入门丨4. 程序结构有哪几种?——程序流程结构

C++基础入门丨4. 程序结构有哪几种?——程序流程结构

黑马程序员 C++教程从0到1入门编程笔记1数据类型运算符程序流程结构数组函数指针结构体

C++程序流程结构顺序和选择结构

C++程序流程结构顺序和选择结构