Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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 - Fatal编程技术网

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

Java 为什么我的程序要添加新行?,java,Java,所以我尝试创建一个三角形示例,使用for循环由“[]”组成。执行时,循环应以给定的输入2打印出来: [] [][] 但是,当我输入2并编译时,它会为框添加另一行,如下所示: [] [][] [][][] 这是不是有个鬼机修工或者我遗漏了什么 import java.util.Scanner; public class NestedLoops { public static void main(String[] args) { Scanner input = n

所以我尝试创建一个三角形示例,使用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);
            }

        }


    }


}
import java.util.Scanner;
公共类嵌套循环
{
公共静态void main(字符串[]args)
{
扫描仪输入=新扫描仪(System.in);
System.out.print(“输入一个介于2-9之间的数字:”);
int width=input.nextInt();
字符串r=“”;

对于(int i=1;i您只需要一个for循环:

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

for(int i=1;i您只需要一个for循环:

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

for(inti=1;i如果你读了评论,就会发现很多关于你做错了什么的提示

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

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

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

  • 我建议你“手动执行”程序。拿一张纸和一支铅笔,写下变量的名称和值的“槽”。现在假设你完全按照所写的方式执行语句,在你的纸上写/更改变量的值

当然,你需要用你的大脑来解释上面所说的,对实际发生的事情有一个理解,并制定一个解决方案

故障排除/调试是你通过实践学会的事情;也就是说,你自己动手做。如果你想成为一名高效的程序员,你需要学习这一点


自己解决问题的另一个好处是,这种练习有助于你提高阅读和理解代码的技能,并最终提高你的写作技能。而且……我的朋友……这是你家庭作业的重点!

如果你阅读了评论,就会发现很多关于你做错了什么的提示

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

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

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

  • 我建议你“手动执行”程序。拿一张纸和一支铅笔,写下变量的名称和值的“槽”。现在假设你完全按照所写的方式执行语句,在你的纸上写/更改变量的值

当然,你需要用你的大脑来解释上面所说的,对实际发生的事情有一个理解,并制定一个解决方案

故障排除/调试是你通过实践学会的事情;也就是说,你自己动手做。如果你想成为一名高效的程序员,你需要学习这一点


自己解决问题的另一个好处是,这种练习有助于培养您阅读和理解代码的技能,并最终提高您编写代码的技能。而且……我的朋友……是您家庭作业的重点!

在调试器中逐步检查您的代码。仔细观察r变量。@SkyVar为什么需要inner循环。消除它,它将解决问题。它会不断增长…并且永远不会再设置为“”?内部循环将执行1+2次。第二次,在添加[]之前,r以[]开始。一个小时后,您在调试器中的代码中一步一步地检查了一个新问题。请仔细观察r变量。@SkyVar为什么需要内部循环。消除它,它将解决问题。它将不断增长…并且再也不会设置为“”。您的内部循环将执行1+2次。第二次,在添加[]之前,r以[]开头.一小时后,你在一个新问题中问了一个变体-1-OP需要学习如何自己调试东西。你不是在用勺子喂他答案来帮助他。(很明显,这是一个学习练习…)有趣的人。现在去stackoverflow中的每个问题,然后投票选出问题的直接答案,告诉他们只需给出一个线索,或者说“搜索谷歌”,他们就能找到正确的答案themself@jonasnas-请重新阅读我的评论。请试着理解它。请试着理解OP>>真正需要什么是的,你忽略了每个人的观点。这个人显然没有费心去尝试解决他/她自己的问题。stackexchange网站在常见问题解答中非常明确地为他们做家庭作业,这似乎完全是这样。哦,对每个人来说都是这样。-1-OP需要学习如何为自己调试东西。你帮不了什么忙用勺子喂他答案。(很明显,这是一个学习练习…)有趣的人。现在去stackoverflow中的每个问题,然后投票选出问题的直接答案,告诉他们只需给出一个线索,或者说“搜索谷歌”,他们就能找到正确的答案themself@jonasnas-请重新阅读我的评论。请试着理解它。请试着理解OP>>真正需要什么是的,你忽略了每个人的观点。这个人显然没有费心去尝试解决他/她自己的问题。stackexchange网站在常见问题解答中非常明确地为他们做家庭作业,这似乎完全是这样的。哦,对他们的每个人来说