这段代码是显示嵌套循环还是仅显示很多循环?它们都在第一个循环内部,但不在彼此内部。这是一个好习惯吗?
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++;
}
答案 0 :(得分: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++;
}
答案 1 :(得分:1)
我不确定这里的问题是什么。这里有明显的嵌套循环,以及一个接一个的连续循环。好的做法?是的,如果您要解决的问题需要它,那么这样做是完全正常的。使用嵌套循环没有错;事实上,它们在很多很多算法中都是必需的。
答案 2 :(得分:0)
由于不正确的缩进,你感到困惑。内部三个for循环(innerDashes,digits和outerDashes)都嵌套在外部for循环(outputDigits)中,并且应该在同一个缩进处。这里只有一层筑巢。所有三个内部循环都处于相同的嵌套级别。
另外,我建议不要对仅包含一个需要循环的语句的for循环使用大括号{}。
答案 3 :(得分:0)
是的,你有一些嵌套在另一个循环中的循环。
至于它是否是好的做法,取决于。是否有意义?编程中没有普遍的事实(好吧,除了一些),所以你不能学习像“不要使用嵌套循环”这样的规则。
虽然查看您的代码,但使用“提取方法”重构将循环的破折号打印成单独的方法确实更易读。
答案 4 :(得分:0)
嵌套循环是这样的:
for(...){
for(...){
// Your code comes here.
}
}
循环内的循环称为嵌套循环。您的代码完成此语句是的,这是嵌套循环的示例。