Java使用for循环生成一系列数字
我正在尝试编写一个for循环集合,它生成下面的一系列数字。我试图调整我的循环,在同一行上打印每个系列,每个术语之间留有空格。我是java新手,对如何实现它感到非常困惑。右边是我增加计数的数字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
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等等……第一个答案显示了我试图在控制台程序中完成的任务。很抱歉,结果有点混乱。我将尝试编辑以显示它。如果第一个答案是您正在尝试做的,那么我基于阵列的解决方案也可以工作,如果您想做的话。我将尝试一下,看看我能得到什么谢谢!我对这些选项持开放态度,并试图理解其背后的逻辑。第一个答案显示了我试图在控制台程序中完成的任务。很抱歉,结果有点混乱。我将尝试编辑以显示它。如果第一个答案是您正在尝试做的,那么我基于阵列的解决方案也可以工作,如果您想做的话。我将尝试一下,看看我能得到什么谢谢!我对各种选择持开放态度,并试图理解这背后的逻辑