8.C++小练习

时间:2024-10-29 07:12:49

使用参数捕获要注意的问题

lambda表达式放在a、b输入完成之后,否则捕获的值是之前定义好的值

//简单的计算器
#include <iostream>

using namespace std;


auto add = [](int a,int b)->int{return a + b;};

auto cheng = [](int a,int b)->int{return a * b;};
auto chu = [](int a,int b)->double{return (double)a / b;};

int main()
{
    while(1){
        //1.定义两个数
        int a;
        int b;
        //2.定义加减乘除
        char fuhao;
        //3.提示
        cout << "请输入两个数" << endl;
        cin >> a;
        cin >> b;

        //如果要用参数捕获的方式
        //lambda表达式放在a、b输入完成之后
        //否则捕获的值是之前定义好的值
        auto jian = [a,b]()->int{return a - b;};

        cin >> fuhao;

        //4.定义switch函数进行计算
        //5.输出最后的结果
        switch (fuhao){
        case '+':
            cout << add(a,b) << endl;
            break;

        //改成jian()
        case '-':
            cout << jian() << endl;
            break;
        case '*':
            cout << cheng(a,b) << endl;
            break;
        case '/':
            cout << chu(a,b) << endl;
            break;
        default:
            cout << "error" << endl;
        }
    }
    return 0;
}