有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在处理过程中使用循环排列打印的数字?i、 从10秒到100秒的e.x和y轴

好的,我知道如何把数字打印成任何数字,但我在重新排列它们时遇到了困难

这是我想要的格式

1   2   3   4   5   6   7   8   9   10

11  12  13  14  15  16  17  18  19  20


21  22  23... 

一直到100岁。所以,一个10×10的网格格式

这是我使用的代码:

size(500,500);
int x, y;
x= 30;
y= 30;

for(int i=1; i<=100; i++){
    text(i, x, y);
    x+=30;
}

然而,它在一条直线上计数为100,我不知道如何使11出现在第二条直线上

我尝试过if语句,但结果有限,需要大量if语句来执行函数,一直到100。我该怎么做?代码如何更高效


共 (1) 个答案

  1. # 1 楼答案

    如果我们想完全消除“If”语句,那么我们可以如下重写这段代码

    for(int i=0; i<=99; i++) {
        x = 30 + (i % 10) * 30;
        y = 30 + (i/10) * 30;
        text(i+1, x, y);
    }
    

    代码说明:

    1. 在这段代码中,循环从0开始,到99结束,对于打印,我们使用了i+1,因此它将按预期打印1到100
    2. 为了计算,我们使用了i的值,为了打印,我们使用了i+1。所以请记住,i总是比循环中的当前数少一个
    3. x随着每个i增加30,当数字再次为11或21时,会重置为30。。。等等如果我们计算x是30的倍数,剩下的是10。当数字为1时,它应该初始化为30。所以公式是
      x=30+(i%10)*30
    4. y随着每10个数字的增加而增加,因为下一行需要打印11个。所以y以30的倍数增加,除以10。所以公式是
      y=30+(i/10)*30