变量操作
在本课程中,您将学习通过以下方式对变量执行各种操作:
- 向其写入值
- 使用数学表达式修改它们
- 在控制台中显示其内容
您还将学习如何启用简单的用户与程序交互。
用户交互
当我们允许用户与程序交互时,程序会变得更有趣。我们将通过使用 cin
(character input)添加一条新指令来实现这一点。
#include <iostream>
int main()
{
std::cout << "Please enter your age: ";
int age;
std::cin >> age;
std::cout << "You're " << age << " years old.\n";
}
cin
允许我们将所谓的“标准输入”(stdin)的内容保存到 >>
字符后传递的变量中。这允许用户在控制台中输入一些内容,然后该值被放入变量中。
请注意
cout
使用<<
运算符cin
使用>>
运算符
此外,您可以看到我们没有为 age
分配初始值。初始值是不必要的,因为我们在创建变量后立即使用 std::cin
,它会为变量赋值。之后,变量现在被初始化。
您可以轻松记住箭头的方向
cout
- 文本输出到控制台 -<<
指向cout
cin
- 文本输入到变量 ->>
指向变量
数学运算
存储数字的变量可以使用典型的数学符号(运算符)自由修改
操作 | 含义 | |
---|---|---|
公共 | a + b | a 加 b |
公共 | a - b | a 减 b |
公共 | a * b | a 乘以 b |
公共 | a / b | a 除以 b |
公共 | a % b | a 除以 b 的余数 |
这些不是所有数学运算符。我们稍后会讨论其余的。
^
符号不是幂运算!
让我们在实践中看看这些运算符
#include <iostream>
int main()
{
std::cout << "Please enter your age: ";
int age;
std::cin >> age;
std::cout << "In 10 years, you'll be " << (age + 10) << " years old\n";
std::cout << "5 years ago, you were " << (age - 5) << " years old\n";
std::cout << "When you are twice as old, you'll be " << (age * 2) << " years old\n";
std::cout << "Someone twice as young is " << (age / 2) << " years old\n";
std::cout << (age % 10) << " years ago your age was divisible by 10";
}
请注意,您使用空格
还是制表符
来对齐代码并不重要。
上述运算符都不会影响它们所作用的变量。 age
的内容不会改变。
通过输入年龄 20
,我们将得到以下结果
In 10 years, you'll be 30 years old
5 years ago, you were 15 years old
When you are twice as old, you'll be 40 years old
Someone twice as young is 10 years old
0 years ago your age was divisible by 10
(age: 20 => + 10 = 30)
(age: 20 => - 5 = 15)
(age: 20 => * 2 = 40)
(age: 20 => / 2 = 10)
(age: 20 => % 10 = 0)
正如我们所看到的,变量 age
的值在每个步骤中都保持不变(始终保持值为 20
)。
这是因为在符号中
a + b
a + b
表达式会产生一个值,并且变量的内容保持不变。
修改变量
通常,我们希望通过赋予变量新值来更改其值。您可以简单地再次对变量使用赋值运算符 =
来赋予它新值。
在下面的示例中,变量 age
最初创建时值为 20
。然后,我们为其分配了一个新值 37
。
int age = 20;
age = 37;
例如,如果我们要将变量增加 10
,我们必须这样分配一个加法表达式的结果
age = age + 10;
由于这种模式非常常见,C++ 为此提供了一种简写语法
age += 10;
您可以在下面的示例中看到它是如何工作的
#include <iostream>
int main()
{
std::cout << "Please enter your age: ";
int age;
std::cin >> age;
std::cout << "You're now " << age << " years old\n";
age += 30;
std::cout << "In 30 years, you'll be " << age << " years old";
}
You're now 20 years old
In 30 years, you'll be 50 years old
让我们按顺序分析该程序执行的步骤。考虑变量 age
- 第
7
行定义了一个名为age
的int
类型变量,没有初始值。 - 当执行第
8
行时,程序会在此处等待,直到用户输入内容并按回车
。- 收到输入后,
std::cin
将读取的值放入age
中。由于我们输入了20
,所以age
现在是20
。
- 收到输入后,
- 当执行第
10
行时,std::cout
打印出age
的值,仍然是 20。 - 第
11
行将值更改为20 + 30
的结果,即50
。age
现在的值是50
。 - 最后,执行第
12
行,显示值50
除了上面介绍的运算符 +=
,还有许多其他运算符可以修改变量的内容;以下是最常见的几种
简写运算符 | 等同于 | |
---|---|---|
公共 | a += b | a = a + b |
公共 | a -= b | a = a - b |
公共 | a *= b | a = a * b |
公共 | a /= b | a = a / b |
以及这些运算符在实际操作中的演示
- 演示
- 代码
下面是输入数字 20
后程序运行的演示。
#include <iostream>
int main()
{
std::cout << "Enter some number: ";
int number;
std::cin >> number;
// Increase "number" by 5 and assign.
number += 5;
std::cout << "After increasing by 5: " << number << '\n';
// Decrease "number" by 10 and assign.
number -= 10;
std::cout << "Now, after decreasing by 10: " << number << '\n';
// Multiply by 3 and assign.
number *= 3;
std::cout << "Now, after multiplying by 3: " << number << '\n';
// Divide by 2 and assign.
number /= 2;
std::cout << "Now, after dividing by 2: " << number << '\n';
// Increase value by 1 (incrementation):
number++;
std::cout << "Now, after incrementation: " << number << '\n';
// Decrease value by 1 (decrementation):
number--;
std::cout << "Now, after decrementation: " << number << '\n';
}
您将在接下来的课程中了解更多关于变量的可能性。