我的循环似乎有点麻烦。循环的第一部分工作正常,但是第二部分没有打印出正确数量的空格。它应该以(N-1)* 2个空格开始,然后降为零,每次减少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");
}
我对编程还很陌生,因此希望获得任何帮助!我真的希望有一个良好的基础,所以我不会养成不良的编码习惯,这就是为什么我需要帮助来了解我的循环到底出了什么问题。
任何建议都是有用的!
答案 0 :(得分:0)
是的。您的当前循环是一个常数。您还需要通过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
答案 1 :(得分:0)
您的第二个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");
}