Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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中生成表_Java_Loops_Nested Loops - Fatal编程技术网

使用循环在Java中生成表

使用循环在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 {

我必须使用循环在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 {


    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次迭代中。