Java使用for循环生成一系列数字

Java使用for循环生成一系列数字,java,eclipse,acm-java-libraries,Java,Eclipse,Acm Java Libraries,我正在尝试编写一个for循环集合,它生成下面的一系列数字。我试图调整我的循环,在同一行上打印每个系列,每个术语之间留有空格。我是java新手,对如何实现它感到非常困惑。右边是我增加计数的数字 1. 4 5 6 7 8 9 10 (+1) 2. 6 5 4 3 2 1 (-1) 3. 2 4 6 8 10 12 14 16 (+2) 4. 19 17 15 1

我正在尝试编写一个for循环集合,它生成下面的一系列数字。我试图调整我的循环,在同一行上打印每个系列,每个术语之间留有空格。我是java新手,对如何实现它感到非常困惑。右边是我增加计数的数字

 1. 4  5  6  7  8  9  10                (+1)
 2. 6  5  4  3  2  1                    (-1)
 3. 2  4  6  8  10  12  14  16          (+2)  
 4. 19  17  15  13  11  9  7  5         (-2)
 5. 7  15  23  31  39                   (+8)
 6. 2  4  8  16  32  64                 (*2)
下面是我试图实现它的代码。我得到了第一排工作,但我想知道是否有一个简单的方法,我可以创建其余的,而无需重新复制程序

import acm.program.*;

public class ppLoop extends ConsoleProgram {
    public void run()
    {
        {

        for(int row = 1; row < 2; row++)
        {
        print(" " + row + ". ");

        for (int col = 4; col < 11; col++)

            {
            print(row*col + " ");
            } //col values

            println( );
            } //row values

        }

    }
}
我是java新手,现在正在学习for循环,并试图在for循环中实现这一点。如果有人能帮我,我会非常感激。 非常感谢。 编辑: 下面是我增加行数时发生的情况

编辑: 这是我试图实现的目标的解决方案。谢谢所有帮助我的人

import acm.program.*;
public class ppLoop extends ConsoleProgram
{
    public void run()
    {
        {
        for(int i = 1; i < 2; i++) // One iteration of outer loop
             {
               print(i + ". "); // print row number 1

                for (int j = 4; j < 11; j++) // loop for row 1   
                {
                   print(j + " ");
                } 
                println( );
                print((i + 1) + ". ");

                for (int j = 6; j > 0; j--) // loop for row 2
                {
                   print(j + " ");
                }
                println();
                print((i + 2) + ". ");

                for (int j = 2; j < 17; j = j + 2) // loop for row 3
                {
                   print(j + " ");
                }
                 println();
                print((i + 3) + ". ");

                for (int j = 19; j > 4; j = j - 2) // loop for row 4
                {
                  print(j + " ");
                }
                 println();
                print((i + 4) + ". ");

                for (int j = 7; j < 40; j = j + 8) // loop for row 5
                {
                  print(j + " ");
                }
                println();
                print((i + 5) + ". ");

                for (int j = 2; j < 65; j = j * 2) // loop for row 6
                {
                print(j + " ");
                }
                println();
             } 
        } //close outer loop
    } //close public run
} //close console program

您可以创建一个方法,该方法采用: 1.起始号码 2.执行加法、减法或乘法的数学运算是什么 3.递增/递减或乘以哪个数字 4.结束号

它看起来与此类似:

public void formattedFor(int startNum, String operation, int num, int endNum) {
    if (operation.equals("add")) {
        for (int i = startNum; i < endNum; i += num) {
            System.out.print(i + " ");
        }
    }
    if (operation.equals("sub")) {
        for (int i = startNum; i > endNum; i -= num) {
            System.out.print(i + " ");
        }
    }
    else if (operation.equals("mult")) {
        for (int i = startNum; i < endNum; i *= num) {
            System.out.print(i + " ");
        }  
    }
    System.out.println( );   
}

您可以创建一个方法,该方法采用: 1.起始号码 2.执行加法、减法或乘法的数学运算是什么 3.递增/递减或乘以哪个数字 4.结束号

它看起来与此类似:

public void formattedFor(int startNum, String operation, int num, int endNum) {
    if (operation.equals("add")) {
        for (int i = startNum; i < endNum; i += num) {
            System.out.print(i + " ");
        }
    }
    if (operation.equals("sub")) {
        for (int i = startNum; i > endNum; i -= num) {
            System.out.print(i + " ");
        }
    }
    else if (operation.equals("mult")) {
        for (int i = startNum; i < endNum; i *= num) {
            System.out.print(i + " ");
        }  
    }
    System.out.println( );   
}

可以使用一系列嵌套循环执行此程序。我已经完成了前三排。我拿出你的包裹,用了一种主要的方法。而且,您的缩进非常混乱。由于您的增量会更改每一行,我不知道有什么方法可以使它比使用for循环更短

public class ppLoop{
   public static void main(String[] args)
   {
      {

         for(int i = 1; i < 2; i++) // One iteration of outer loop
         {
            System.out.print(i + ". "); // print row number

            // you can use the same variable for each inner loop    
            for (int j = 4; j < 11; j++) // loop for row 1   
            {
               System.out.print(j + " ");
            } 

            System.out.println( );
            System.out.print((i + 1) + ". ");
            for (int j = 6; j > 0; j--) // loop for row 2
            {
               System.out.print(j + " ");
            }

            System.out.println();
            System.out.print((i + 2) + ". ");
            for (int j = 2; j < 17; j = j + 2) // loop for row 3
            {
               System.out.print(j + " ");
            }
         } 
      }
   }
}

可以使用一系列嵌套循环执行此程序。我已经完成了前三排。我拿出你的包裹,用了一种主要的方法。而且,您的缩进非常混乱。由于您的增量会更改每一行,我不知道有什么方法可以使它比使用for循环更短

public class ppLoop{
   public static void main(String[] args)
   {
      {

         for(int i = 1; i < 2; i++) // One iteration of outer loop
         {
            System.out.print(i + ". "); // print row number

            // you can use the same variable for each inner loop    
            for (int j = 4; j < 11; j++) // loop for row 1   
            {
               System.out.print(j + " ");
            } 

            System.out.println( );
            System.out.print((i + 1) + ". ");
            for (int j = 6; j > 0; j--) // loop for row 2
            {
               System.out.print(j + " ");
            }

            System.out.println();
            System.out.print((i + 2) + ". ");
            for (int j = 2; j < 17; j = j + 2) // loop for row 3
            {
               System.out.print(j + " ");
            }
         } 
      }
   }
}

如果我理解了这个问题,您需要打印六个系列,每个系列都以不同的数字开始,并以某个值递增/递减该数字。因为我看不到初始值和增量/减量之间的关系,所以必须编写六个单独的for循环

public class ppLoop{
   public static void main(String[] args)
   {
      {

         for(int i = 1; i < 2; i++) // One iteration of outer loop
         {
            System.out.print(i + ". "); // print row number

            // you can use the same variable for each inner loop    
            for (int j = 4; j < 11; j++) // loop for row 1   
            {
               System.out.print(j + " ");
            } 

            System.out.println( );
            System.out.print((i + 1) + ". ");
            for (int j = 6; j > 0; j--) // loop for row 2
            {
               System.out.print(j + " ");
            }

            System.out.println();
            System.out.print((i + 2) + ". ");
            for (int j = 2; j < 17; j = j + 2) // loop for row 3
            {
               System.out.print(j + " ");
            }
         } 
      }
   }
}
如果您绝对反对这种做法,可以将初始值、增量/减量和最终值存储在数组中,并使用for循环、If语句处理乘法和while循环对它们进行迭代。该阵列将如下所示:

int[][] values = new int[][] {
        {4, 6, 2, 19, 7, 2},
        {1, -1, 2, -2, 8, 2},
        {10, 1, 16, 5, 39, 64}
    };
我可以根据这个来写资料,但这不是你要的

我强烈怀疑,如果这是一个家庭作业,而你修改了这个问题,那么问题本身就有一些你没有理解的地方。如果这意味着有一个用于循环的简单解决方案,那么可能应该有一些逻辑将行绑定在一起,除非允许您使用array/while-loops/for-loops/objects和方法

另一方面,您应该以不同的格式设置代码。现在读起来有点难。通常,缩进循环、类或函数中发生的事情。例如:

import acm.program.*;

public class ppLoop extends ConsoleProgram {
    public void run() {
        for(int row = 1; row < 2; row++) {
            print(" " + row + ". ");

            for (int col = 4; col < 11; col++) {
                print(row*col + " ");
            } //col values

            println( );
        } //row values
    }
}

如果我理解了这个问题,您需要打印六个系列,每个系列都以不同的数字开始,并以某个值递增/递减该数字。因为我看不到初始值和增量/减量之间的关系,所以必须编写六个单独的for循环

public class ppLoop{
   public static void main(String[] args)
   {
      {

         for(int i = 1; i < 2; i++) // One iteration of outer loop
         {
            System.out.print(i + ". "); // print row number

            // you can use the same variable for each inner loop    
            for (int j = 4; j < 11; j++) // loop for row 1   
            {
               System.out.print(j + " ");
            } 

            System.out.println( );
            System.out.print((i + 1) + ". ");
            for (int j = 6; j > 0; j--) // loop for row 2
            {
               System.out.print(j + " ");
            }

            System.out.println();
            System.out.print((i + 2) + ". ");
            for (int j = 2; j < 17; j = j + 2) // loop for row 3
            {
               System.out.print(j + " ");
            }
         } 
      }
   }
}
如果您绝对反对这种做法,可以将初始值、增量/减量和最终值存储在数组中,并使用for循环、If语句处理乘法和while循环对它们进行迭代。该阵列将如下所示:

int[][] values = new int[][] {
        {4, 6, 2, 19, 7, 2},
        {1, -1, 2, -2, 8, 2},
        {10, 1, 16, 5, 39, 64}
    };
我可以根据这个来写资料,但这不是你要的

我强烈怀疑,如果这是一个家庭作业,而你修改了这个问题,那么问题本身就有一些你没有理解的地方。如果这意味着有一个用于循环的简单解决方案,那么可能应该有一些逻辑将行绑定在一起,除非允许您使用array/while-loops/for-loops/objects和方法

另一方面,您应该以不同的格式设置代码。现在读起来有点难。通常,缩进循环、类或函数中发生的事情。例如:

import acm.program.*;

public class ppLoop extends ConsoleProgram {
    public void run() {
        for(int row = 1; row < 2; row++) {
            print(" " + row + ". ");

            for (int col = 4; col < 11; col++) {
                print(row*col + " ");
            } //col values

            println( );
        } //row values
    }
}

你知道每行的起始号码吗?因为这很容易,但除此之外,我不知道不同的行发生了什么。你说你想写6个不同的for循环,打印出不同的数字增量?@coderrick我不知道是否有办法在一个循环中这样做。@3在作业中,不同的行有不同的数字量。我只是有点迷茫,在这里如何完成我所寻找的。@trooper这是我试图实现的一个循环示例

你知道每行的起始号码吗?因为这很容易,但除此之外,我不知道不同的行发生了什么。你说你想写6个不同的for循环,打印出不同的数字增量?@coderrick我不知道是否有办法在一个循环中这样做。@3在作业中,不同的行有不同的数字量。我只是有点迷茫如何完成我所寻找的。@trooper这是我试图完成的一个循环示例。@谢谢!我们还没有讨论过方法。我最熟悉的图书馆是cam图书馆。我来试试。@谢谢!我们还没有讨论过方法。我最熟悉的图书馆是cam图书馆。我会尝试一下。谢谢你,这看起来正是我试图完成的,但在一个控制台程序中。我将尝试修改并使其工作。再次感谢!你能告诉我线路的号码在哪里变化吗?我有点迷路了。谢谢我让它与works一起工作,但4-6号线的计数数保持在3。这是我得到的输出。1.4 5 6 7 8 9 10 2. 6 5 4 3 2 1 3. 2 4 6 8 10 12 14 16 3. 19 17 15 13 11 9 7 3. 7 15 23 31 39 3. 2 4 8 16 32 64谢谢!我通过打印更改了行号,在每个for循环之前,我增加了所需的任何数字。如果每次都说三,那是因为第三个后面的每个打印语句都说i+2。。他们需要说i+3、i+4、i+5等等……谢谢你,这看起来正是我在控制台程序中试图实现的。我将尝试修改并使其工作。再次感谢!你能告诉我线路的号码在哪里变化吗?我有点迷路了。谢谢我让它与works一起工作,但4-6号线的计数数保持在3。这是我得到的输出。1.4 5 6 7 8 9 10 2. 6 5 4 3 2 1 3. 2 4 6 8 10 12 14 16 3. 19 17 15 13 11 9 7 3. 7 15 23 31 39 3. 2 4 8 16 32 64谢谢!我通过打印更改了行号,在每个for循环之前,我增加了所需的任何数字。如果每次都说三,那是因为第三个后面的每个打印语句都说i+2。。他们需要说i+3、i+4、i+5等等……第一个答案显示了我试图在控制台程序中完成的任务。很抱歉,结果有点混乱。我将尝试编辑以显示它。如果第一个答案是您正在尝试做的,那么我基于阵列的解决方案也可以工作,如果您想做的话。我将尝试一下,看看我能得到什么谢谢!我对这些选项持开放态度,并试图理解其背后的逻辑。第一个答案显示了我试图在控制台程序中完成的任务。很抱歉,结果有点混乱。我将尝试编辑以显示它。如果第一个答案是您正在尝试做的,那么我基于阵列的解决方案也可以工作,如果您想做的话。我将尝试一下,看看我能得到什么谢谢!我对各种选择持开放态度,并试图理解这背后的逻辑