为什么我的程序添加了新行?

时间:2013-02-17 01:58:48

标签: java

所以我试图使用for循环创建一个由“[]”组成的三角形示例。执行时,循环应打印输出2:

[]
[][]

然而,当我输入2并编译它时,为框添加另一行,如下所示:

[]
[][]
[][][]

这有鬼技师还是我错过了什么?

import java.util.Scanner;
public class NestedLoops
{
    public static void main(String[] args)
    {
        Scanner input = new Scanner(System.in);

        System.out.print("Enter a Number between 2-9: ");
        int width=input.nextInt();

        String r ="";
        for(int i=1; i<=width; i++)
        {
            for(int j=1; j<=i; j++)
            {
                r=r+"[]";
                System.out.println(r);
            }

        }


    }


}

2 个答案:

答案 0 :(得分:5)

如果您阅读了评论,那么就会有很多关于您做错了什么的提示。

但你真正需要的是如何自己解决问题的建议:

  • Joel建议您使用调试器。如果你还没有接受过这方面的教学,你需要找到一个与你正在使用的IDE相关的教程。

  • ruakh建议在代码中添加跟踪打印件,以打印关键位置的变量值。这种方式也有效,特别是在无法将调试器附加到程序的情况下

  • 我建议您“手动执行”该程序。获取一张纸和一支铅笔,记下变量的名称和值的“槽”。现在假装你正在执行完全按照它们编写的语句,在你的纸上写/改变变量的值。

当然,你需要用你的大脑来解释上面会告诉你什么,建立对实际情况的了解,以及修复它的计划。

故障排除/调试是您学习与练习相关的事情;即通过这样做你自己。如果你要成为一名富有成效的程序员,你需要学习这一点。

关于自己解决问题的其他好事是这种做法可以帮助您提高阅读和理解代码的技能,并最终帮助您掌握编写代码的技巧。而那.​​.....我的朋友......就是你的功课!

答案 1 :(得分:1)

你只需要一个for循环:

    for(int i=1; i<=width; i++)
    {
        r=r+"[]";
        System.out.println(r);
    }