Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当您希望每行打印一组数字时,模数是如何工作的_Java_Modulus - Fatal编程技术网

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个数字输出后打印一行。如果这个答案是最有帮助的,请接受它: