Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.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 如何打印大于0的连续整数,每行三个?_Java_For Loop - Fatal编程技术网

Java 如何打印大于0的连续整数,每行三个?

Java 如何打印大于0的连续整数,每行三个?,java,for-loop,Java,For Loop,如何循环此操作? 我正在尝试循环这个: 0-> 1,2,3 1-> 4,5,6 2-> 7,8,9 3-> 10,11,12 4->..... ...... 我不知道怎么写这个算法。 我在下面试过了,没用 public class gYie { public static void main(String[] args) { int current = 0; int death = 0; for (int

如何循环此操作?

我正在尝试循环这个:

0-> 1,2,3
1-> 4,5,6
2-> 7,8,9
3-> 10,11,12
4->.....
......
我不知道怎么写这个算法。 我在下面试过了,没用

public class gYie {

    public static void main(String[] args) {
        int current = 0;
        int death = 0;
        for (int i = 0; i < 10; i++) {
            System.out.print(i + "    ");
            for (int j = 0; j < 3; j++) {
                System.out.print(death+j +" ");

                current += j;
            }
            death += current;
            System.out.println("");
        }
    }
}
如何解决这个问题?我不知道该怎么写。

3变成了18,19,20,而不是12,13,14。

你想得太多了。对于左侧,只需打印
i
。对于右侧,您只需要一个变量
current
,该变量在每次打印时递增:

int current = 1;
for (int i = 0; i < 10; i++) {
    System.out.print(i + "    ");
    for (int j = 0; j < 3; j++) {
        System.out.print(current + " ");

        current ++;
    }
    System.out.println();
}
}
int电流=1;
对于(int i=0;i<10;i++){
系统输出打印(i+“”);
对于(int j=0;j<3;j++){
系统输出打印(当前+“”);
电流++;
}
System.out.println();
}
}

您需要这样做。只需继续打印当前的

   int current = 1;
   for (int i = 0; i < 10; i++) {
        System.out.print(i + "    ");
        for (int j = 0; j < 3; j++) {
            System.out.print(current +" ");
            current ++;
        }
        System.out.println();
    }
int电流=1;
对于(int i=0;i<10;i++){
系统输出打印(i+“”);
对于(int j=0;j<3;j++){
系统输出打印(当前+“”);
电流++;
}
System.out.println();
}

看起来很像家庭作业,所以这里有一些伪代码(实际上是Python)可以帮你解决这个问题:

for outer in range (10):
    print "%d ->"%(outer),
    for inner in range (3):
        print "%2d"%(outer * 3 + inner + 1),
    print
基本思想是简单地拥有一个包含0到2的内部循环和一个每次增加1的外部循环。那么公式是:

outer * 3 + inner + 1
为您提供所需的值:

0 ->  1  2  3
1 ->  4  5  6
2 ->  7  8  9
3 -> 10 11 12
4 -> 13 14 15
5 -> 16 17 18
6 -> 19 20 21
7 -> 22 23 24
8 -> 25 26 27
9 -> 28 29 30

您只需将代码简化如下:

public static void main(String[] args) {
    int death = 3;
    for (int i = 0; i < 10; i++) {
        System.out.print(i + "    ");
        death = 3*i;
        for (int j = 1; j <= 3; j++) {

            System.out.print(death+j +" ");
        }
        System.out.println("");
    }
}

这应该可以完成任务

public class gYie {

    public static void main(String[] args) {
        for (int i = 0, j = 1; i < 10; i++) {
            System.out.print(i + "    ");
            for (int h = 0; h < 3; h++, j++) {
                System.out.print(j +" ");
            }
            System.out.println("");
        }
    }
}
公共类gYie{
公共静态void main(字符串[]args){
对于(int i=0,j=1;i<10;i++){
系统输出打印(i+“”);
对于(inth=0;h<3;h++,j++){
系统输出打印(j+“”);
}
System.out.println(“”);
}
}
}

像这样更改代码

int death = 1;
for (int i = 1; i <= 10; i++) {
System.out.print(i + "    ");
for (int j = 0; j < 3; j++) {
    System.out.print(death++ +" ");

    //current += j;
    }
    //death += current;
    System.out.println("");
}
int死亡=1;
对于(inti=1;i试试这个

int loopCount = 1;

for(int a = 1; a < 21; a++){
    System.out.println(a);
    for(int b = 0; b < 3; b++){
        System.out.print((loopCount++) + " ");  
    }
    System.out.println();
}
int loopCount=1;
对于(int a=1;a<21;a++){
系统输出打印项次(a);
对于(int b=0;b<3;b++){
System.out.print((loopCount++)++);
}
System.out.println();
}
编辑:但我想我找到了一种更有效的方法,使用单循环

int x = 1;

for(int a = 0; a < 21; a++){    
    System.out.println(a + " -> " + (x) + " " + (x + 1) + " " + (x + 2));   
    x = x + 3;
}
intx=1;
对于(inta=0;a<21;a++){
System.out.println(a+“->”+(x)+++(x+1)+++(x+2));
x=x+3;
}
现在,您可以将其与变量和逻辑合并

使用一个简单的计数器:

int j = 0;
for (int i = 0; i < 10; i++)
    System.out.println(i + "    " + ++j + " " + ++j + " " + ++j + " ");
intj=0;
对于(int i=0;i<10;i++)
System.out.println(i++++++j++++++j++++++++j++);

得到了它的精确解

class Alok{
   public static void main(String[] args){
       int i = 0,j=0;
         for(i=0;i<10;i++){
        System.out.print(""+i+"->");
        for(j=(i*3)+1;j<(i*3)+4;j++){
            System.out.print(""+j+" ");
        }System.out.println();
         }
    }
}
class Alok{
公共静态void main(字符串[]args){
int i=0,j=0;

对于(i=0;i,这里有一个单循环的解决方案:

int n = 15;

for (int i = 0; i < n; i++) {
    if (i % 3 == 0) {
        System.out.println();
    }
    System.out.print(i + " ");
}
int n=15;
对于(int i=0;i
上面有很多嵌套循环。下面是一个可扩展的解决方案,位于单个for循环中

public static void main(String[] args) {
    int numbersPerLine = 3;
    int finalNumber = 12;
    int startingRowNumber = 0;
    System.out.print(startingRowNumber + " -> ");
    for(int i = 0; i < finalNumber; i++) {
        if(i > 0 && (i % numbersPerLine) == 0) {
            System.out.print("\n" + ((i / numbersPerLine) + startingRowNumber) + " -> ");
        } else if(i > 0) {
            System.out.print(",");            
        }
        System.out.print((i + 1));
    }
}
publicstaticvoidmain(字符串[]args){
int numbersPerLine=3;
int finalNumber=12;
int startingRowNumber=0;
系统输出打印(起始行号+“->”);
对于(int i=0;i0&(i%numbersPerLine)==0){
系统输出打印(“\n”+((i/numbersPerLine)+起始行号)+“->”;
}如果(i>0),则为else{
系统输出打印(“,”);
}
系统输出打印((i+1));
}
}

输出应该是什么样的?请检查我的ans,寻找只使用一个循环的解决方案
int n = 15;

for (int i = 0; i < n; i++) {
    if (i % 3 == 0) {
        System.out.println();
    }
    System.out.print(i + " ");
}
public static void main(String[] args) {
    int numbersPerLine = 3;
    int finalNumber = 12;
    int startingRowNumber = 0;
    System.out.print(startingRowNumber + " -> ");
    for(int i = 0; i < finalNumber; i++) {
        if(i > 0 && (i % numbersPerLine) == 0) {
            System.out.print("\n" + ((i / numbersPerLine) + startingRowNumber) + " -> ");
        } else if(i > 0) {
            System.out.print(",");            
        }
        System.out.print((i + 1));
    }
}