Java 嵌套为循环,但带有扭曲

Java 嵌套为循环,但带有扭曲,java,Java,所以最近我很难理解嵌套for循环。例如,有一个问题问:下面的嵌套循环结构将执行最内部的语句(x++)多少次 for (int j = 0; j < 100; j++) { for (int k = 100; k > 0; k--) { x++; } } for(int j=0;j0;k--) { x++; } } 你能简单地说一下吗,因为我对编程相当陌生?谢谢 对于每个内部循环,For循环将执行x++100次。您还将运行内部for循环100

所以最近我很难理解嵌套for循环。例如,有一个问题问:下面的嵌套循环结构将执行最内部的语句(x++)多少次

for (int j = 0; j < 100; j++)
{
    for (int k = 100; k > 0; k--)
    {
        x++;
    }
}
for(int j=0;j<100;j++)
{
对于(int k=100;k>0;k--)
{
x++;
}
}

你能简单地说一下吗,因为我对编程相当陌生?谢谢

对于每个内部循环,For循环将执行
x++
100次。您还将运行内部for循环100次。因此,您总共将运行
x++
100x100=10000次。

对于每个内部循环,For循环将执行
x++
100次。您还将运行内部for循环100次。因此,您总共将运行
x++
100x100=10000次。

for(int j=0;j<100;j++)//j->0~99=>total=100
for(int j = 0; j < 100; j++)     //j -> 0~99 =>total=100
{
    for(int k = 100; k > 0; k--) //k -> 100~1 =>total=1oo
    {
       x++;
    }
}

System.out.println(x);           //should print 10000 bcz of 100*100
{ 对于(int k=100;k>0;k--)//k->100~1=>total=1oo { x++; } } 系统输出println(x)//应打印10000 bcz的100*100
for(int j=0;j<100;j++)//j->0~99=>total=100
{
对于(int k=100;k>0;k--)//k->100~1=>total=1oo
{
x++;
}
}
系统输出println(x)//应打印10000 bcz的100*100

您只需了解每个循环执行多少次

请注意,第一个循环运行100次。所以,里面的一切都会重复100次。内部循环也运行100次。因此
x++
将执行100*100=10000次

for (int j = 0; j < 100; j++)      // 100 times
{
    for (int k = 100; k > 0; k--)  // 100 * 100 times
    {
        x++;                       // 100 * 100 times
    }
}

System.out.println("x = " + x);    // This should print 10000 (assuming that x is zero initially)
for(int j=0;j<100;j++)//100次
{
对于(int k=100;k>0;k--)//100*100次
{
x++;//100*100次
}
}
System.out.println(“x=”+x);//这应打印10000(假设x最初为零)

您只需了解每个循环执行多少次

请注意,第一个循环运行100次。所以,里面的一切都会重复100次。内部循环也运行100次。因此
x++
将执行100*100=10000次

for (int j = 0; j < 100; j++)      // 100 times
{
    for (int k = 100; k > 0; k--)  // 100 * 100 times
    {
        x++;                       // 100 * 100 times
    }
}

System.out.println("x = " + x);    // This should print 10000 (assuming that x is zero initially)
for(int j=0;j<100;j++)//100次
{
对于(int k=100;k>0;k--)//100*100次
{
x++;//100*100次
}
}
System.out.println(“x=”+x);//这应打印10000(假设x最初为零)

对于每个j,k循环执行100次,因此x增加100。见下图:

对于j=0;k=100,k=99,k=98。。。。k=2,k=1;x现在是100

对于j=1;k=100,k=99,k=98。。。。k=2,k=1;x现在是200

对于j=98;k=100,k=99,k=98。。。。k=2,k=1;x现在是9900

对于j=99;k=100,k=99,k=98。。。。k=2,k=1;x现在是10000

如果代码修改为:

for(int j = 0; j < 100; j++) {
    for(int k = 0; k < 100; k++) // NOTE: reversal of k here.
    {
        x++;
    } 
}
for(int j=0;j<100;j++){
对于(int k=0;k<100;k++)//注意:这里k的倒数。
{
x++;
} 
}

内部k循环只是以相反的顺序(从100到0)执行,只是为了迷惑新手。

对于每个j,k循环执行100次,因此x增加100。见下图:

对于j=0;k=100,k=99,k=98。。。。k=2,k=1;x现在是100

对于j=1;k=100,k=99,k=98。。。。k=2,k=1;x现在是200

对于j=98;k=100,k=99,k=98。。。。k=2,k=1;x现在是9900

对于j=99;k=100,k=99,k=98。。。。k=2,k=1;x现在是10000

如果代码修改为:

for(int j = 0; j < 100; j++) {
    for(int k = 0; k < 100; k++) // NOTE: reversal of k here.
    {
        x++;
    } 
}
for(int j=0;j<100;j++){
对于(int k=0;k<100;k++)//注意:这里k的倒数。
{
x++;
} 
}

内部k循环只是以相反的顺序(从100到0)执行,只是为了让新手感到困惑。

内部循环可以执行多少次?现在,你会重复多少次内循环(或者,你会通过多少次外循环)?将这两个数字相乘,这就是你的答案。只需在两个for循环之后打印
x
值。你会得到一个答案。一个循环正在计数;另一个是倒计时,内循环要倒多少次?现在,你会重复多少次内循环(或者,你会通过多少次外循环)?将这两个数字相乘,这就是你的答案。只需在两个for循环之后打印
x
值。你会得到一个答案。一个循环正在计数;另一个是倒计时,但我不明白的是有一个j++,然后是一个k--。第一个循环从0开始,到100结束。内部循环从100开始,到0结束。它正好相反,内循环对外循环的每次迭代倒计时100次。所以外循环有100次迭代,因此这就是打破循环的条件,
100x100=10000
,j从0开始循环,直到达到99(100次循环),另一方面k从100开始循环,直到达到1(100次)。它是这样的:第一个循环:i=0,K=100(内部循环K--)第二个循环i=0,K=99(内部循环K--)。。。。第100个循环i=0,K=1(内部K-)(此时它从内部循环中断)第101个循环i=1,K=100(外部循环i++)(回到内部循环K=100)但我没有得到的是有一个j++,然后是一个K-。第一个循环从0开始,到100结束。内部循环从100开始,到0结束。它正好相反,内循环对外循环的每次迭代倒计时100次。因此,外循环有100次迭代,因此它是
100x100=10000
这正是打破循环的条件,j从0开始,它是一个循环