如何重新编码这个嵌套的 for 循环计数框?

这项作业的目标是创建一个嵌套的 for 循环来打印:


0 1 2 3 

1 2 3 4

2 3 4 5

3 4 5 6

虽然我自己在 java 上尝试过代码,但我被告知存在问题。


我决定使用第三个变量 x,它允许代码正常运行,但我也被告知在没有它的情况下重做代码。尽管我可能会尝试思考这将如何运作,但不幸的是我被困住了


public class inputOutputExample{

    public static void main(String[] args) {

        int x = 0; 

        for (int i = 1; i<=4; i++) {

            for (int j=1; j<=4; j++) {

                System.out.print(x+ " ");

                x++;

            }

            x = x-3;

            System.out.println();

        }

    }

}

有人可以帮助仅使用 i 和 j 重做代码吗?我会很感激。谢谢!


慕标5832272
浏览 148回答 5
5回答

慕侠2389804

你的意思是这样的:for(int i=0; i<4; i++)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; for(int j=0; j<4; j++)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.print(i+j+" ");&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("\n");&nbsp; &nbsp; }

翻阅古今

作为一种闲置的好奇心,以下是如何使用一个变量来做到这一点。不要交出它 - 这不是你所要求的 - 但它很好地强调了 div 和 mod 的使用:for&nbsp;(int&nbsp;i=0;&nbsp;i&nbsp;<&nbsp;16;&nbsp;i++) &nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(i/4&nbsp;+&nbsp;i%4);它本质上与我的其他答案相同,因为任何数字 A 都可以被认为是“较小的数字 B 乘以 C,加上 A 除以 C 的余数”的总和用5的倍数表示,12就是2*5 + 12%5因此,对于您需要打印的 16 个数字,i可以通过x/4(0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3 的序列)提供可以由(0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3 的序列)j提供x%4

倚天杖

你自己尝试过,并且在寻求帮助之前确实解决了问题,这是一件好事。您应该首先实现一个打印 0 1 2 3 0 1 2 3 0 1 2 3 0 1 2 3 的嵌套循环。一旦你开始工作,我相信很容易改变它,所以它会打印 0 1 2 3 1 2 3 4 2 3 4 5 3 4 5 6。

DIEA

我们可以使用两个 for 循环来表达您的问题。外循环控制每个子序列的起始值,内循环控制要打印的子序列。for (int i=0; i <= 3; ++i) {&nbsp; &nbsp; for (int j=i; j <= i+3; ++j) {&nbsp; &nbsp; &nbsp; &nbsp; if (j > i) System.out.print(" ");&nbsp; &nbsp; &nbsp; &nbsp; System.out.print(j);&nbsp; &nbsp; }&nbsp; &nbsp; System.out.println();}这打印:0 1 2 31 2 3 42 3 4 53 4 5 6

跃然一笑

仅使用两个变量意味着将两个变量相加:&nbsp; &nbsp; i j0 = 0+01 = 0+12 = 0+23 = 0+31 = 1+02 = 1+13 = 1+24 = 1+32 = 2+03 = 2+14 = 2+25 = 2+3...您现在能想到如何重新编写循环来生成这组步骤吗?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java