/= C++ 中的操作
/= operation in C++
据我理解这段代码 returns 函数中输入的位数,但我不理解这个操作:
(number /= 10) != 0
完全..我明白这一行
number /= 10
等于 number = number / 10
但为什么不,但为什么在这个函数中他们不写 number / 10 != 0
?有什么区别?
std::size_t numDigits(int number) // function definition.
{ // (This function returns
std::size_t digitsSoFar = 1; // the number of digits
// in its parameter.)
while ((number /= 10) != 0) ++digitsSoFar;
return digitsSoFar;
}
(number /= 10) != 0
这实际上有 3 个步骤。它...
- 计算
number / 10
- 将该值分配给
number
- 检查该值是否不等于
0
因此,为了回答您的问题,"why in this function they don't write number / 10 != 0
," 让我们来看看它的作用:
- 计算
number / 10
- 检查该值是否不等于
0
你能看出两者的区别吗?
如果您仍然不确定为什么这很重要,请在将显示 number
和 digitsSoFar
的 while 循环中放置一个输出语句,并尝试 运行 这两个函数它的编写方式,然后是您建议的版本。
据我理解这段代码 returns 函数中输入的位数,但我不理解这个操作:
(number /= 10) != 0
完全..我明白这一行
number /= 10
等于 number = number / 10
但为什么不,但为什么在这个函数中他们不写 number / 10 != 0
?有什么区别?
std::size_t numDigits(int number) // function definition.
{ // (This function returns
std::size_t digitsSoFar = 1; // the number of digits
// in its parameter.)
while ((number /= 10) != 0) ++digitsSoFar;
return digitsSoFar;
}
(number /= 10) != 0
这实际上有 3 个步骤。它...
- 计算
number / 10
- 将该值分配给
number
- 检查该值是否不等于
0
因此,为了回答您的问题,"why in this function they don't write number / 10 != 0
," 让我们来看看它的作用:
- 计算
number / 10
- 检查该值是否不等于
0
你能看出两者的区别吗?
如果您仍然不确定为什么这很重要,请在将显示 number
和 digitsSoFar
的 while 循环中放置一个输出语句,并尝试 运行 这两个函数它的编写方式,然后是您建议的版本。