使用循环在Java中生成表
我必须使用循环在Java中创建一个表。它需要在一列中打印出1-78,然后每五次打印15-75,例如15、20、55。。。75 78次,因为循环需要打印总共78个值;因此,循环需要在第二列中迭代6次,然后每三次打印15-30次,例如15、18、21、24、…3078次,因为循环需要打印总共78个值;因此循环需要迭代13次,在第三列中,然后在第四列中迭代数字4。 这就是我到目前为止所做的:使用循环在Java中生成表,java,loops,nested-loops,Java,Loops,Nested Loops,我必须使用循环在Java中创建一个表。它需要在一列中打印出1-78,然后每五次打印15-75,例如15、20、55。。。75 78次,因为循环需要打印总共78个值;因此,循环需要在第二列中迭代6次,然后每三次打印15-30次,例如15、18、21、24、…3078次,因为循环需要打印总共78个值;因此循环需要迭代13次,在第三列中,然后在第四列中迭代数字4。 这就是我到目前为止所做的: import java.util.Scanner; public class Sandbox {
import java.util.Scanner;
public class Sandbox {
public static void main(String[] args) { //main method
int angles = 10;
double cosines =4;
int meters =12;
for (int i =1; i<=78;i++){
System.out.println(i);
}
for (int j = 1; j <=6; j++) {
for (angles =10 ;angles<75;) {
angles +=5;
for (meters=12; meters <30;) {
meters +=3;
int num1= 4;
System.out.print( ")" +angles + "|"+ meters) +4);
}
}
}
这会输出正确的值,但打印方式会使其为1-78,然后米=30,然后值为15-75 78倍 我想这正是你想要的:
public static void main(String[] args) { //main method
int angles = 15;
double cosines =4;
int meters =15;
for (int i =1; i<=78;i++){
System.out.print(i);
System.out.print('|');
System.out.print(angles);
angles+=5;
if (angles>75){
angles=15;
}
System.out.print('|');
System.out.print(meters);
meters+=3;
if (meters>30){
meters=15;
}
System.out.println("|4|");
}
}
您对所有循环的数量感到困惑,问题是您需要生成78行,您需要循环78次,句号。然后,对于每个循环,您打印变量,根据需要递增并重置它们,然后进行循环。我认为这符合您的要求:
public static void main(String[] args) { //main method
int angles = 15;
double cosines =4;
int meters =15;
for (int i =1; i<=78;i++){
System.out.print(i);
System.out.print('|');
System.out.print(angles);
angles+=5;
if (angles>75){
angles=15;
}
System.out.print('|');
System.out.print(meters);
meters+=3;
if (meters>30){
meters=15;
}
System.out.println("|4|");
}
}
您对所有循环的数量感到困惑,问题是您需要生成78行,您需要循环78次,句号。然后,对于每个循环,打印变量,根据需要递增和重置变量,然后返回循环。一个可能的解决方案是首先在78×4或4×78数组中构建整个输出,然后在两个嵌套循环中打印所有输出。如果这对你来说更容易或感觉更自然。通过这种方式,您可以在原始程序中重用该思想和大部分代码
public static void main(String[] args) {
int[][] table = new int[4][78];
// generate table
int angles = 10;
double cosines = 4;
int meters = 12;
int line = 0;
for (int i = 1; i <= 78; i++) {
table[0][line] = i;
line++;
}
line = 0;
for (int j = 1; j <= 6; j++)
for (angles = 10; angles < 75;) {
angles += 5;
table[1][line] = angles;
line++;
}
line = 0;
for (int j = 1; j <= 13; j++)
for (meters = 12; meters < 30;) {
meters += 3;
table[2][line] = meters;
table[3][line] = 4;
line++;
}
// print table
for (line = 0; line < 78; line++) {
System.out.print(table[0][line]);
for (int column = 1; column < 4; column++) {
System.out.print("|" + table[column][line]);
}
System.out.println();
}
}
一种可能的解决方案是首先在78×4或4×78数组中构建整个输出,然后在两个嵌套循环中打印所有输出。如果这对你来说更容易或感觉更自然。通过这种方式,您可以在原始程序中重用该思想和大部分代码
public static void main(String[] args) {
int[][] table = new int[4][78];
// generate table
int angles = 10;
double cosines = 4;
int meters = 12;
int line = 0;
for (int i = 1; i <= 78; i++) {
table[0][line] = i;
line++;
}
line = 0;
for (int j = 1; j <= 6; j++)
for (angles = 10; angles < 75;) {
angles += 5;
table[1][line] = angles;
line++;
}
line = 0;
for (int j = 1; j <= 13; j++)
for (meters = 12; meters < 30;) {
meters += 3;
table[2][line] = meters;
table[3][line] = 4;
line++;
}
// print table
for (line = 0; line < 78; line++) {
System.out.print(table[0][line]);
for (int column = 1; column < 4; column++) {
System.out.print("|" + table[column][line]);
}
System.out.println();
}
}
您需要的是在整个循环中构建输入,假设您想要一个类似
1 | 15 20 25 30 ... 75 | 15 18 21 ... 30 | 4
2 | 15 20 25 30 ... 75 | 15 18 21 ... 30 | 4
....
为了建立这个模型,您需要嵌套的循环和输出。只要使循环简单,它就可以非常简单
for (int i = 1; i <= 78; i++)
{
System.out.print(i + " | ");
for (int j = 15; j <=75; j += 5)
System.out.print(j + " ");
System.out.print("| ");
for (int k = 15; k <= 30; k += 3)
System.out.print(k + " ");
System.out.print("| 4 |");
System.out.println("");
}
正如Kira Yakuza在文章中提到的,你最好将其划分为不同的方法
请注意,您的问题在示例输出中有点不清楚,我就是这样解释您所写的内容的。如果您想要不同的输出,您应该编辑您的问题以澄清。您需要的是在整个循环中构建输入,假设您想要一个类似于
1 | 15 20 25 30 ... 75 | 15 18 21 ... 30 | 4
2 | 15 20 25 30 ... 75 | 15 18 21 ... 30 | 4
....
为了建立这个模型,您需要嵌套的循环和输出。只要使循环简单,它就可以非常简单
for (int i = 1; i <= 78; i++)
{
System.out.print(i + " | ");
for (int j = 15; j <=75; j += 5)
System.out.print(j + " ");
System.out.print("| ");
for (int k = 15; k <= 30; k += 3)
System.out.print(k + " ");
System.out.print("| 4 |");
System.out.println("");
}
正如Kira Yakuza在文章中提到的,你最好将其划分为不同的方法
请注意,您的问题在示例输出中有点不清楚,我就是这样解释您所写的内容的。如果您需要不同的输出,您应该编辑您的问题以澄清。您可以计算给定索引、最大值、系数和数据类型的偏移量的值。有了这些信息,您就可以生成每一行,无论您位于哪个索引 TablePrinter.java
可以计算给定索引、最大值、因子和偏移量的数据类型的值。有了这些信息,您就可以生成每一行,无论您位于哪个索引 TablePrinter.java
我认为您最大的挑战不是算法本身难以实现,而是难以跟踪,尤其是在意外输出期间。我强烈建议将嵌套最多的循环放入方法/函数中,如fiftententoseventyfive;我认为你最大的挑战不是算法本身很难实现,而是很难跟踪,特别是在意外输出时。我强烈建议将嵌套最多的循环放入方法/函数中,如fiftententoseventyfive;在循环的5次迭代中。