1

这段代码是显示嵌套循环还是仅仅显示很多循环?它们都在第一个循环内,但不在彼此内。这是一个好习惯吗?

    for (int outputDigits = STARTING_NUMBER; outputDigits <= MAX_NUMBER; outputDigits = outputDigits + 2) {  // controls number output

        for (int innerDashes = dashIncrement; innerDashes <= DASHES; innerDashes++) {      // inner dashes
            System.out.print("-");
        }


            for (int digits = 1; digits <= outputDigits; digits++) {           // prints the number x amount of times
                System.out.print(outputDigits);
            }


                for (int outerDashes = dashIncrement; outerDashes <= DASHES; outerDashes++) {  // outer dashes
                    System.out.print("-");
                }
        System.out.println();
        dashIncrement++;
            }
4

5 回答 5

1

它是嵌套循环和一个接一个循环的组合。代码看起来不容易阅读。更好的方法是拥有一个名为 printCharacters 的私有函数,它将您的破折号字符作为输入以及需要打印的时间

private void printString(String inputString, int count) {
for (int i=0;i<=count;i++ {
System.out.print(inputString);

} }

for (int outputDigits = STARTING_NUMBER; outputDigits <= MAX_NUMBER; outputDigits = outputDigits + 2) {  // controls number output

   printString("-",DASHES-dashIncrement);

        for (int digits = 1; digits <= outputDigits; digits++) {           // prints the number x amount of times
            System.out.print(outputDigits);
        }


           printString("-",DASHES-dashIncrement);
    System.out.println();
    dashIncrement++;
        }
于 2013-09-18T05:18:51.350 回答
1

我不确定这里有什么问题。这里有明显的嵌套循环,以及一个接一个的连续循环。好习惯?是的,如果您要解决的问题需要它,那么这样做是完全可以的。使用嵌套循环没有错;事实上,许多算法都需要它们。

于 2013-09-18T05:25:00.710 回答
0

是的,您有几个循环嵌套在另一个循环中。

至于这是否是好的做法,这取决于。是否有意义?编程中没有普遍的真理(嗯,除了少数),所以你不能学习像“不要使用嵌套循环”这样的规则。

尽管查看您的代码,但使用“提取方法”重构将破折号打印 for 循环转换为单独的方法确实会更清晰。

于 2013-09-18T05:17:38.827 回答
0

嵌套循环是这样的:

for(...){
    for(...){
         // Your code comes here.
    }
}

循环内的循环称为嵌套循环。您的代码实现了此语句,是的,这就是嵌套循环的示例。

于 2013-09-18T05:19:01.840 回答
0

由于缩进不当,您感到困惑。内部三个 for 循环(innerDashes、digits 和 outerDashes)都嵌套在外部 for 循环(outputDigits)内,并且应该在相同的缩进处。这里只有一层嵌套。所有三个内部循环都处于相同的嵌套级别。

另外,我建议不要对只包含一个需要循环的语句的 for 循环使用大括号{}。

于 2013-09-18T05:17:09.207 回答