为了账号安全,请及时绑定邮箱和手机立即绑定

循环搞乱 Java 中的模式?

循环搞乱 Java 中的模式?

互换的青春 2021-12-01 14:59:32
我的循环似乎有点麻烦。循环的第一部分工作正常,但第二部分没有打印出正确数量的空格。它应该从 (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");    }我对编程还很陌生,所以任何形式的帮助都将不胜感激!我真的想要一个良好的基础,这样我就不会养成不良的编码习惯,这就是为什么我需要帮助了解我的循环到底出了什么问题。任何形式的建议都会很有用!
查看完整描述

2 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

是的。您当前的循环是一个常数。你也需要调整它a。也就是说,改变这个


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

{

    System.out.print(" ");  

}


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

{

    System.out.print(" ");

}

并且没有其他变化(N = 4)


O      O

 O    O

  O  O

   OO


查看完整回答
反对 回复 2021-12-01
?
守着一只汪

TA贡献1872条经验 获得超3个赞

你的第二个 for 循环有问题。您没有根据 a 更改空格数。尝试这个:


    int N = 0;

    Scanner keyNum = new Scanner(System.in);

    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");


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

        {

            System.out.print("  ");  

        }

        System.out.print("O");

    }


查看完整回答
反对 回复 2021-12-01
  • 2 回答
  • 0 关注
  • 149 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信