原件: 好的,所以我必须制作一个简单的数字金字塔,但问题是它必须使用两种方法。我的问题是,返回一直给我“不兼容的类型”,我不知道为什么。 好的,所以我必须制作一个简单的数字金字塔,但问题是它必须使用两种方法。我的问题是,返回一直给我“不兼容的类型”,我不知道为什么。
public static void main(String[] args)
{
System.out.println(NumPyramid(1,1));
}
public static int NumPyramid(int i, int j)
{
for (;i <= 7; i++)
{
for (; j <= i; j++)
{
{
return System.out.print(j + " ");
}
}
}
编辑:好的,现在我的新代码存在不是金字塔的问题
public static void main(String[] args)
{
NumPyramid(1,1);
}
public static void NumPyramid(int i, int j)
{
for (;i <= 7; i++)
{
for (; j <= i; j++)
{
System.out.print(j + " ");
}
System.out.println();
}
}
打印出来
1
2
3
4
5
6
7
删除Println会产生1 2 3 4 5 6 7
输出应该是
1
12
123
等
答案 0 :(得分:4)
System.out.print
是一种void
方法;也就是说,它什么都不返回。
您无法从void
方法返回任何内容。
只需从该行中删除return
关键字,将方法的签名从int
更改为void
。
然后,更改main方法中的调用以从中删除System.out.println
。
答案 1 :(得分:2)
好吧,正如@makoto巧妙地指出,System.out.print
是一个void
方法,它没有返回任何内容:
public static void main(String[] args) {
System.out.println(NumPyramid(1,1));
}
也应该改变。所以你应该做:
public static void NumPyramid(int i, int j) {
for (;i <= 7; i++) {
for (; j <= i; j++) {
System.out.print(j + " ");
}
}
}
虚空方法,并且:
public static void main(String[] args) {
NumPyramid(1,1);
}
没有打印。
修改的
当你遇到一个新问题时,你不应该编辑你的问题,删除问题帖子中的内容以使其成为一个新问题......而是接受最佳答案,然后创建 new 帖子。在这里,我们不仅仅回答你,但我们正在构建一个知识库。如果您有新问题,请将其设为新帖子!
那就是说,对于你的新问题,你的算法是关闭的,它应该是:
public static void NumPyramid(int max) {
for (int i=1; i<=max; ++i) {
for (int j=1; j<=i; ++j)
System.out.println(j + " ");
System.out.println();
}
}
max
来指定行数和金字塔“基数”的宽度; i
迭代max
回车输出; j
对i
个数字0 1 2
输出max = 3
,而是1 2 3
应该输出,max = 3
1
1 2
1 2 3
再次,HTH。请,请恢复原来的问题。
答案 2 :(得分:0)
你想要打印吗?
1
1 2
1 2 3
1 2 3 4
1 2 3 4 5
你需要一个参数,它是方法:
public static void NumPyramid(int number)
{
for (int i = 1; i <= number; ++i)
{
for (int x = 1; x <= i; ++x)
{
System.out.print(x + " ");
}
System.out.println();
}
}
我认为这是不言自明的
答案 3 :(得分:0)
我猜你不再询问不兼容的退货类型了吗?好吧,我想,我现在可以回答你现在的问题。
如果您希望代码位于金字塔中,则无法执行此操作:
for (;i <= 7; i++)
{
for (; j <= i; j++)
{
System.out.print(j + " ");
}
System.out.println();
}
该代码正在做的是打印j的值,然后打印一个空格,然后打印一个新行。解决方案是创建一个String,用于在for循环的每次迭代后存储数字。
for (;i <= 7; i++)
{
for (; j <= i; j++)
{
//System.out.print(j + " ");
//The string would take the place of this line
}
//Since println always prints on a new line, you
//could just print the string in this System.out
System.out.println();
}