这些嵌套的'for'循环在C语言中是如何工作的?

这些嵌套的'for'循环在C语言中是如何工作的?,c,for-loop,C,For Loop,我发现很难理解for循环是如何工作的,特别是当有多个for循环时。如果f31,-2,1,那么这个函数返回什么?还有n6=?语言是C int f3(int n6, int n7, int n8) { int i, j; for(i = 0; i <= n8; i++) { for(j = i; j > n7; j--) { n6 *= 2; } } return n6; } 答案应为32。此函

我发现很难理解for循环是如何工作的,特别是当有多个for循环时。如果f31,-2,1,那么这个函数返回什么?还有n6=?语言是C

int f3(int n6, int n7, int n8) {
    int i, j;

    for(i = 0; i <= n8; i++) {
        for(j = i; j > n7; j--) {
            n6 *= 2;
        }
    }

    return n6;
}

答案应为32。

此函数以整数作为输入

n7和n8是迭代输入。或者它们为循环提供长度值

第一个for循环循环长度为n8,而i小于或等于n8

而第二个循环以第一个循环的当前索引=i为起点。它通过在索引大于n7时从索引j1中减去1,来查看索引是否大于n7,并向后迭代j

计算是在第二个循环的迭代中进行的:它将n6乘以2。循环完成后,它返回n6的乘法

在您的情况下,第一个循环将运行两次:

n8=1,0和1小于或等于。 索引0成为循环2的起始索引。j=0且大于n7-2。 此循环将运行两次,因为0和-1大于-2。 在这个循环中,n6 1被乘以2。或1*2*2 第二个循环结束并返回到第一个循环,该循环再次运行,因为1等于1。 现在索引1成为循环2的起始索引。 由于1、0和-1大于-2,此循环将运行三次。 再次乘法:4*2*2*2 循环1结束两次迭代。 n6=32

此函数在给定的迭代次数上返回n的2次幂,其中n7需要大于n8,否则n6将不经修改地返回

由于这几乎是JavaScript,我们可以用示例代码演示:

功能f3n6、n7、n8{ 让我,j; 对于i=0;i n7;j-{ n6*=2; } } 返回n6; } document.querySelectorbutton.addEventListenerclick,函数{ const n6=document.querySelectorinput.n6.value; const n7=document.querySelectorinput.n7.value; const n8=document.querySelectorinput.n8.value; console.logf3n6、n7、n8; }; 标签{ 显示:块; 保证金:2倍; } 标签>输入{ 显示:块; 宽度:50px; } 输入号码 值1 价值2
开始请提供关于向下投票的评论。Joe,请给我们一个明确的问题,比如:我不完全理解为什么这个函数f3通过使用for lusses返回答案32?而不是帮助?