CC++ & Algorithm

C++赋值语句与表达式

简单33
语言版本:C++Python
概述:赋值语句就像把零花钱存进存钱罐,表达式则像算算你的零花钱总共多少。

零花钱与存钱罐:C++的赋值语句和表达式

小朋友,你存过零花钱吗?你有一个存钱罐,往里面放5元,再放3元,存钱罐里现在一共有8元。在C++里,我们用 变量 来代表存钱罐,用 赋值语句 来存钱,用 表达式 来算钱。这一篇就带你认识这三个好伙伴,学会怎么用它们把计算变得像存零花钱一样简单。


1. 变量:带名字的小盒子

变量就像你在作业本上贴了标签的盒子。想装整数?就定义一个能装整数的盒子。比如:

int money;   // 声明一个整数变量money,就像拿个空存钱罐
  • int 是“整数类型”的缩写,表示这个盒子只能装整数(比如0、1、-5、100)。
  • money 是盒子的名字,你可以随便起,但最好用英文单词,比如 score(分数)、age(年龄)。
  • 分号 ; 告诉电脑:“这句话说完了,该下一句了。”

你可以同时声明多个变量:

int a;       // 声明一个整数变量a
int b;       // 声明一个整数变量b
int c;       // 声明一个整数变量c

或者一句话声明多个:

int a, b, c; // 声明三个整数变量:a、b、c

小提示:盒子在刚被声明时里面是空的?不对!在C++里,如果不给它“装”东西,里面可能是个旧垃圾(随机值),所以一定要先赋值再使用哦!


2. 赋值语句:往盒子里放东西

赋值用符号 =,它和数学里的“等于”不一样。在C++里,= 的意思是: 把右边的东西放进左边的盒子里

比如:

money = 5;  // 把5放进盒子money里,就像往存钱罐放了5元
  • 左边必须是变量(盒子),不能是数字或表达式。
  • 右边可以是数字、变量,或者后面要学的表达式。

你还可以把一个变量的值复制给另一个变量:

int myMoney;         // 声明一个整数变量myMoney
myMoney = money;     // 把money盒子里的值(5)复制一份放进myMoney

现在 myMoney 也是5了。注意:money 盒子里的值不会消失,就像你从存钱罐里看有多少钱,钱还在里面。


3. 表达式:算算你的零花钱总共多少

表达式就像一道算术题,它由数字、变量和运算符(比如 +-*/)组成,计算后会得到一个结果。

比如:

  • 3 + 2 结果是5
  • money - 1 如果money是5,结果是4
  • money * 2 结果是10
  • (3 + 5) / 2 结果是4(注意整数除法会去掉小数部分)

表达式可以放在赋值语句的右边,先计算,再把结果放进左边变量:

int total;              // 声明一个整数变量total
total = 3 + 2;          // 计算3+2得5,然后放进total

也可以直接用变量参与计算:

int pocket = 10;        // 声明一个整数变量pocket,初始为10
pocket = pocket - 3;    // 先算pocket-3得7,再放进pocket(原来的10被覆盖)

这就像你从零花钱中花掉3元,剩下7元。数学里写 pocket = pocket - 3 很奇怪,但在编程里它是在 更新 变量的值。


4. 赋值和表达式一起工作:像记账本一样更新余额

最常用也最容易让人迷糊的,就是类似 money = money + 3; 这样的语句。看下面这个例子:

#include <iostream>
using namespace std;

int main() {
    int money;           // 声明一个整数变量money,就像拿个空存钱罐
    money = 5;           // 把5放进去
    cout << "第一次放钱后: " << money << endl;

    money = money + 3;   // 把money原来的5加上3,得到8,再放回money
    cout << "再放3元后: " << money << endl;

    int total = money + 2; // 用表达式money+2算出10,存进新的变量total
    cout << "又放了2元,总共: " << total << endl;
    return 0;
}

运行结果:

第一次放钱后: 5
再放3元后: 8
又放了2元,总共: 10
  • 第1步:money 是5。
  • 第2步:money = money + 3; —— 电脑先看右边 money + 3,此时money是5,所以得到8。然后把8放进左边的money盒子,原来的5被覆盖了。这就像你从存钱罐里倒出5元,再放进8元(原来的5+3)。
  • 第3步:int total = money + 2; —— 先计算 money + 2,此时money已经是8了,所以得10,然后创建一个新盒子 total 并放入10。

你可以像记账本一样不断更新余额,比如每天花掉1元:

int wallet = 20;        // 钱包里有20元
wallet = wallet - 1;    // 花掉1元,还剩19
wallet = wallet - 1;    // 再花1元,还剩18
cout << wallet;         // 显示18

5. 新手容易犯的错误

  • 把等号当成数学等于:比如想判断 money 是否等于5,不能用 money = 5(那是赋值),一定要用 money == 5(两个等号表示“是否相等”)。但在顺序结构里我们暂时只做赋值,不会判断,记住就行了。
  • 左边放表达式:例如 3 = a; 是不允许的,因为左边必须是变量(盒子),不能是数字。
  • 忘记声明变量就使用:比如直接写 cout << money; 而之前没有 int money;,程序会报错“未声明的标识符”。就像你还没给存钱罐起名字就想往里看钱。
  • 混淆声明和赋值int a = 5; 这句是声明变量a的同时赋值为5,这叫初始化。后面再写 a = 10; 是单独的赋值。新手容易在一行里重复声明,比如 int a = 5; int a = 10; 会报错(不能给同一个盒子贴两次名字,除非在另一个作用域)。
  • 整数除法丢掉小数7 / 2 在C++里结果是3(不是3.5),因为整数除以整数得整数,小数部分被丢弃。如果要得到小数,得用 double 类型,后期会学。

6. 完整示例:零花钱记账本

下面是一个完整的小程序,模拟一周零花钱的存入和支出:

#include <iostream>
using namespace std;

int main() {
    int money = 0;      // 声明一个整数变量money并初始化为0(空钱包)
    
    // 第1天:妈妈给了10元
    money = money + 10;
    cout << "周一,妈妈给了10元,现有: " << money << "元" << endl;
    
    // 第2天:买了零食花掉3元
    money = money - 3;
    cout << "周二,买了零食花掉3元,还剩: " << money << "元" << endl;
    
    // 第3天:奶奶又给了20元
    money = money + 20;
    cout << "周三,奶奶给了20元,现有: " << money << "元" << endl;
    
    // 第4天:买了文具花掉5元
    money = money - 5;
    cout << "周四,买文具花掉5元,还剩: " << money << "元" << endl;
    
    // 算一算如果再把剩下的钱翻倍会怎样
    int doubleMoney = money * 2;
    cout << "如果把剩下的" << money << "元翻倍,可以得到: " << doubleMoney << "元" << endl;
    
    return 0;
}

运行结果:

周一,妈妈给了10元,现有: 10元
周二,买了零食花掉3元,还剩: 7元
周三,奶奶给了20元,现有: 27元
周四,买文具花掉5元,还剩: 22元
如果把剩下的22元翻倍,可以得到: 44元

7. 相关知识点指引

  • 数据类型:除了 int,还有 double(小数)、char(字符)等,以后学。
  • 输入语句:如果想让用户自己输入零花钱金额,需要学 cin >>
  • 算术运算符+-*/%(取余数,比如7 % 2 得1)。
  • 自增自减money++ 等同于 money = money + 1,但更简洁,以后会学到。
  • 复合赋值money += 3 等同于 money = money + 3,写起来更短。

下一步,你可以试试用变量和表达式计算你的考试成绩总分,或者计算你一周一共花了多少零花钱。慢慢来,多写几行代码就熟练啦!

例题精讲

1单选题

执行以下C++代码后,变量x的值是多少? int x = 10; x = x - 3;

A10
B7
C13
D3
2判断题

在C++中,赋值语句 a = 5; 表示将5赋值给变量a。

3填空题
请补充代码,使变量x的值变为原来的2倍。
int x = 4;
x = ___;
4单选题

下列哪一个是正确的C++赋值语句?

Aint x = 5;
Bx == 5;
Cint x == 5;
Dint x = 5
5判断题

表达式 2 * 3 + 4 的值是10。