首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >对0-9连续顺序的数进行平方

对0-9连续顺序的数进行平方
EN

Stack Overflow用户
提问于 2021-09-06 16:37:02
回答 5查看 97关注 0票数 1

我是编程领域的新手。关于这个函数,我有一个基本的问题,这个函数是0-9的整数的平方。我知道发生了什么,直到我

代码语言:javascript
复制
std::cout << i << "   " << square << "\n";
i = i + 1;

我不太确定这是如何导致输出按照从0到9的顺序平方结果的。有人能解释一下这行代码背后的原因吗?以下是此函数的代码。

代码语言:javascript
复制
#include <iostream>

int main() {
  
  int i = 0;
  int square = 0;
  
  while ( i <= 9) {
    square = i*i;
    std::cout << i << "     " << square << "\n";
    i = i + 1; 
  }

  return 0; 
} 
EN

回答 5

Stack Overflow用户

发布于 2021-09-06 16:44:52

这段代码:

代码语言:javascript
复制
std::cout << i << "   " << square << "\n";
i = i + 1;

并不能解决任何问题。它只是输出已经计算出的当前平方,然后为下一次循环迭代递增i

实际的平方发生在这里:

代码语言:javascript
复制
square = i*i;

因此,代码从i=0开始,计算square=0*0并显示它,然后设置i=1,计算square=1*1并显示它,然后设置i=2,计算square=2*2并显示它,依此类推,直到i超过9,然后循环停止。

票数 2
EN

Stack Overflow用户

发布于 2021-09-06 16:52:30

  • std::cout << i << " " << square << "\n";将每个数字i打印到它的正方形旁边,这是以前计算的,
    • std::cout << i << " " << square << "\n";递增i来计算下一个正方形。它在i到达10.

    时停止

输出将如下所示:

代码语言:javascript
复制
0 0
1 1
2 4
3 9
4 16
5 25
6 36
7 49
8 64
9 81
票数 2
EN

Stack Overflow用户

发布于 2021-09-06 16:57:29

让我们从头开始,看看发生了什么,我将忽略前几行,从以下几行开始:

代码语言:javascript
复制
int i = 0;
int square = 0;

你看,当你说int i;的时候,你的编译器会说我需要分配存储桶来保存i的值。当你说i = 0 0被放入那个内存桶时。这也是square正在发生的事情。

现在循环

代码语言:javascript
复制
while ( i <= 9 ) {
    square = i*i;
    std::cout << i << "     " << square << "\n";
    i = i + 1; 
}

所以,让我们忽略

代码语言:javascript
复制
square = i*i;
std::cout << i << "     " << square << "\n";

现在,我们将在稍后讨论它。

所以

代码语言:javascript
复制
while ( i <= 9 ) {
    i = i + 1; 
}

进入循环并从i的存储桶中获取值,添加1并将新值放入i的存储桶中。因此,在第一个循环中,它将为i = 0 + 1,将1放入i存储桶中。其次,i = 1 + 12放入,第三个代码放入< i = 2 + 1 >d17i = 2 + 1>。

所以让我们回到square和它的存储桶。

代码语言:javascript
复制
square = i*i;

因此,第一次进入循环时,i = 0square = 0 * 0编译器将0放入square的内存桶中。下一次命中square时,i已递增为1,因此square = 1 * 1,因此编译器将1放入桶中。第三次i2所以square = 2 * 2,编译器将4放入桶中,依此类推,直到i <= 9。当i命中10时,不执行循环。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69077835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档