Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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 如何在正整数序列中每5个数字后和第3个数字后再打印一个*号?_Java - Fatal编程技术网

Java 如何在正整数序列中每5个数字后和第3个数字后再打印一个*号?

Java 如何在正整数序列中每5个数字后和第3个数字后再打印一个*号?,java,Java,我正在打印 1,2,3,4,5,*,6,7,8,*,9,10,11,12,13,*,14,15,16,*,17。。。 其中,应在每5个整数之后和第3个整数之后重复打印额外的* 这是我目前的密码 for (int i = 1; i <= 100; i++) { if (i % 5 == 0) { System.out.print("* "); } else { System.out.print(i + " &qu

我正在打印

1,2,3,4,5,*,6,7,8,*,9,10,11,12,13,*,14,15,16,*,17。。。
其中,应在每5个整数之后和第3个整数之后重复打印额外的
*

这是我目前的密码

for (int i = 1; i <= 100; i++) {
    if (i % 5 == 0) {
        System.out.print("* ");
    } else {
        System.out.print(i + " ");
    }
}

我在这里做错了什么?

我不能说如何让它显示你想要的,但是它在每5(5,10,15等)处显示
*
的原因是
%
是一个“模”操作符,它在除法后得到余数


因此
5%5
确实
==0
(因此打印出
“*”
),因为除
5/5
后没有余数。与
10/5
等相同。
6%5
将给出
1
作为余数。

这将给出预期输出:

class Main {
  public static void main(String[] args) {
    for (int i = 1; i <= 100; i++) {
        System.out.print(i + " ");
        if ((i-5) % 8 == 0 || i % 8 == 0) {
            System.out.print("* ");
        }
    }
  }
}

// Output: 
// 1 2 3 4 5 * 6 7 8 * 9 10 11 12 13 * 14 15 16 * 17 18 19 20 21 * 22
// 23 24 * 25 26 27 28 29 * 30 31 32 * 33 34 35 36 37 * 38 39 40 * 41
// 42 43 44 45 * 46 47 48 * 49 50 51 52 53 * 54 55 56 * 57 58 59 60 61
// * 62 63 64 * 65 66 67 68 69 * 70 71 72 * 73 74 75 76 77 * 78 79 80
// * 81 82 83 84 85 * 86 87 88 * 89 90 91 92 93 * 94 95 96 * 97 98 99 100
主类{
公共静态void main(字符串[]args){

对于(int i=1;i嘿!你能解释一下预期输出的逻辑是什么吗?它显示(“*”)每个前5个数字,然后是3个数字。但是数字通常是递增的。这基本上是在计算公式。你有5,8,13,16,21等等。因此这些指数位于5,或5+3(8),或5+(8n)的间隔之后因此,如果((i-5)%8==0 | | i%8==0)
,你可以在那里检查
,如果是,在打印数字后,在图案中打印一个星号。毕竟,数字总是打印出来的(也应该澄清,它是“5+(8n)”或“8n”,因此在结果条件中是
|
)@Frusciante110如果你的问题已经解决,请确保接受答案。OP已经澄清了预期输出背后的逻辑。你应该编辑你的答案以提供解决方案。你到底做了什么?@akuzminykh引用了问题评论部分提到的Rogue的解释更新了答案。