循环搞乱 Java 中的模式?

我的循环似乎有点麻烦。循环的第一部分工作正常,但第二部分没有打印出正确数量的空格。它应该从 (N - 1) * 2 个空格开始并下降到零,每次减少两个,或者至少这就是我想要完成的。


它必须是一个for循环,我认为我输入的内容会起作用,但是无论我输入什么,我似乎都无法得到我想要的结果。例如,如果用户输入了四个,结果应该是:


O      O

 O    O

  O  O

   OO 

相反,这就是我得到的:


O    O

 O    O

  O    O

   O    O

这是我的代码:


    int N = 0;

    System.out.println("Enter a value between 2 and 10.");

    N = keyNum.nextInt();

    for (int a = 0; a < N; a++) 

    {

        System.out.println("");

        for (int b = 0; b < a; b++) 

        {

            System.out.print(" ");

        }

        System.out.print("O");


        //This loop is the one I`m having trouble with, everything else works fine!


        for (int c = (N - 1) * 2; c >= 0; c -= 2)

        {

            System.out.print(" ");  

        }

        System.out.print("O");

    }

我对编程还很陌生,所以任何形式的帮助都将不胜感激!我真的想要一个良好的基础,这样我就不会养成不良的编码习惯,这就是为什么我需要帮助了解我的循环到底出了什么问题。


任何形式的建议都会很有用!


互换的青春
浏览 150回答 2
2回答

HUH函数

是的。您当前的循环是一个常数。你也需要调整它a。也就是说,改变这个for (int c = (N - 1) * 2; c >= 0; c -= 2){&nbsp; &nbsp; System.out.print(" ");&nbsp;&nbsp;}像for (int c = (N - a - 1) * 2; c > 0; c--)&nbsp;{&nbsp; &nbsp; System.out.print(" ");}并且没有其他变化(N = 4)O&nbsp; &nbsp; &nbsp; O&nbsp;O&nbsp; &nbsp; O&nbsp; O&nbsp; O&nbsp; &nbsp;OO

守着一只汪

你的第二个 for 循环有问题。您没有根据 a 更改空格数。尝试这个:&nbsp; &nbsp; int N = 0;&nbsp; &nbsp; Scanner keyNum = new Scanner(System.in);&nbsp; &nbsp; System.out.println("Enter a value between 2 and 10.");&nbsp; &nbsp; N = keyNum.nextInt();&nbsp; &nbsp; for (int a = 0; a < N; a++)&nbsp;&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; System.out.println("");&nbsp; &nbsp; &nbsp; &nbsp; for (int b = 0; b < a; b++)&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.print(" ");&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; System.out.print("O");&nbsp; &nbsp; &nbsp; &nbsp; for (int c = (N - a - 1) * 2 ; c > 0; c -= 2)&nbsp; &nbsp; &nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.out.print("&nbsp; ");&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; }&nbsp; &nbsp; &nbsp; &nbsp; System.out.print("O");&nbsp; &nbsp; }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java