1

所以我正在尝试使用 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);
            }

        }


    }


}
4

2 回答 2

5

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

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

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

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

  • 我建议您“手动执行”该程序。拿一张纸和铅笔,写下变量的名称和值的“槽”。现在假设您正在执行语句完全按照它们所写的那样,在您的纸上写入/更改变量的值。

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

Troubleshooting / debugging is something you learn to do with practice; i.e. by doing it yourself. And you'll need to learn this if you are ever to become a productive programmer.

The other good thing about doing your own trouble-shooting is that the practice helps your develop your skills in reading and understanding code, and ultimately your skills in writing it. And THAT ... my friend ... is the point of your homework!

于 2013-02-17T02:22:16.093 回答
1

为此,您只需要一个 for 循环:

    for(int i=1; i<=width; i++)
    {
        r=r+"[]";
        System.out.println(r);
    }
于 2013-02-17T02:06:33.603 回答