Java 当您希望每行打印一组数字时,模数是如何工作的
如果你想像下面给定的代码一样,每行打印一组数字,有人能给我解释一下模是如何工作的吗?我只知道模的作用是给出一个数的余数,就是这样。我想知道它的过程Java 当您希望每行打印一组数字时,模数是如何工作的,java,modulus,Java,Modulus,如果你想像下面给定的代码一样,每行打印一组数字,有人能给我解释一下模是如何工作的吗?我只知道模的作用是给出一个数的余数,就是这样。我想知道它的过程 int []arrayLoterry= new int[50]; String output=""; for(int i=0;i<arrayLoterry.length;i++){ arrayLoterry[i]=(int) Math.floor(Math.random()*49)+i; output+=arra
int []arrayLoterry= new int[50];
String output="";
for(int i=0;i<arrayLoterry.length;i++){
arrayLoterry[i]=(int) Math.floor(Math.random()*49)+i;
output+=arrayLoterry[i]+" ";
if(i%10==9){
output+="\n";
}
}
System.out.println(output);
本声明:
if(i%10==9){
output+="\n";
}
表示:如果我除以10剩下9的余数,则将\n这是一个新行添加到变量输出
模简单地将第一个数除以第二个数,并给出余数。举例如下:
10%3 = 1
20%2 = 0
7%4 = 3
在你的情况下,这将在每10个数字后开始一个新的谎言。您可能会想,为什么不将该语句更改为ifi%10==0?它是i%10==9的原因是,当循环第一次执行时,我保持值0,因此当它通过模运行时,答案是0,这在循环第一次执行后生成一个新行
因为Java计算0,1,2就像我们计算1,2,3一样,我们必须在所有以9结尾的东西之后换行。因此,在我们的第9个10、19个20、29个30、39个40、49个50之后开始一条新的线路,这也是最后输出的数字
这个图表显示了Java是如何计数的,而我们是如何计数的
Java | 0 1 2 3 4 5 6 7 8 9
----------------------------
Us!! | 1 2 3 4 5 6 7 8 9 10
if条件只是检查i%10的其余部分是否为9,然后在if块内执行任务。对于您的代码,基本上,在字符串输出中每追加10个数字之后,就会在字符串输出中追加一个换行符以分隔这些行
例如:
when i == 9 // append newline
when i == 19 // append newline
when i == 29 // append newline
when i == 39 // append newline
when i == 49 // append newline
这意味着最终结果将是一个5 x 10的矩阵
旁注-我不建议在循环中连接字符串,因为这是一个性能瓶颈,最好使用随附方法。可能重复引用此方法可能会有所帮助。Java中没有模数运算符。这是。@BlueEagle-可能会帮助您理解。它有点清楚。但是,如果余数的答案为0,则打印新行,那么当if中有i%7==3时,它为什么不打印在第一个数字之后?如果答案为0,则不打印新行。当余数为9时,它会打印一个新行。我想您可能会感到困惑,当循环运行时,没有i%7==3。变量i表示循环运行的次数。模得到i/10的余数,如果它=9,它将打印一条新行。这将在每10个数字后打印一行。@BlueEagle为了简化,if语句只在每10个数字输出后打印一行。如果这个答案是最有帮助的,请接受它: