C++赋值语句与表达式
简单33零花钱与存钱罐: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结果是5money - 1如果money是5,结果是4money * 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,写起来更短。
下一步,你可以试试用变量和表达式计算你的考试成绩总分,或者计算你一周一共花了多少零花钱。慢慢来,多写几行代码就熟练啦!
例题精讲
执行以下C++代码后,变量x的值是多少? int x = 10; x = x - 3;
在C++中,赋值语句 a = 5; 表示将5赋值给变量a。
请补充代码,使变量x的值变为原来的2倍。
int x = 4;
x = ___;下列哪一个是正确的C++赋值语句?
表达式 2 * 3 + 4 的值是10。