gpt4 book ai didi

c - 为什么我的循环不是无限的

转载 作者:太空狗 更新时间:2023-10-29 15:09:28 26 4
gpt4 key购买 nike

#include <stdio.h>
#include <cs50.h>

int main(void)
{

int n;
printf("Please give me an integer greater than zero!\n");
n=GetInt();

if(n<0)
{
printf("You are giving me a bad value!\n");
return 1;
}


for(int i=n-1;i<n;n--)
printf("%d\n",n);
return 0;
}

我想知道如果用户为 n 输入一个数字,为​​什么循环不会进入无穷大。假设用户为 n 输入 40;当n 变成 39 等等——这不会形成无限循环吗?

最佳答案

for(int i=n-1;i<n;n--)

让我们为 n = 40 绘制一个(非常短的)表格:

  i  |  n
-----+-----
39 | 40 i < n ? true
39 | 39 i < n ? false

因此,我们将在第 1st 次迭代后退出循环。

澄清:

我猜你很困惑,因为你认为 i在每次迭代中都会更新,但这就是重点 - 它不会,它的值是固定的并且只有 n正在改变。

关于c - 为什么我的循环不是无限的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17692825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com