java初学者 一个特别简单的问题

灰丶太狼大王 2014-11-17 11:46:42
就是打印星星,一个菱形的。下面是我写的代码可是自己找不到错误,希望大神帮忙,谢谢!


class printXx
{
public static void main(String[] args)
{
Forx1();
Forx2();
}
public void Forx1()
{
for(int x=1;x<=4;x++)
{
for(int y=4;y>x;y--)
{
System.out.print(" ");
}
for(int z=0;z<2x-1;z++)
{
System.out.print("*");
}
System.out.println();
}
}
public void Forx2()
{
for(int x=5;x<=7;x++)
{
for(int y=4;y<x;y++)
{
System.out.print(" ");
}
for(int z=0;z<15-2x;z++)
{
System.out.print("*");
}
}
System.out.println();
}

}
...全文
490 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
willsung 2014-11-22
  • 打赏
  • 举报
回复
最明显的是,函数Forx()的调用必须先有个类的对象
wyc_ 2014-11-21
  • 打赏
  • 举报
回复
li14725836912321 2014-11-21
  • 打赏
  • 举报
回复
拜托,能不能注重下格式,这样一团乱,看的头都晕了
tony4geek 2014-11-17
  • 打赏
  • 举报
回复
网上很多 搜搜然后分析理解下。
灰丶太狼大王 2014-11-17
  • 打赏
  • 举报
回复
class printXx { public static void main(String[] args) { Forx1(); Forx2(); } public void Forx1() { for(int x=1;x<=4;x++) { for(int y=4;y>x;y--) { System.out.print(" "); } for(int z=0;z<2x-1;z++) { System.out.print("*"); } System.out.println(); } } public void Forx2() { for(int x=5;x<=7;x++) { for(int y=4;y<x;y++) { System.out.print(" "); } for(int z=0;z<15-2x;z++) { System.out.print("*"); } } System.out.println(); } }
灰丶太狼大王 2014-11-17
  • 打赏
  • 举报
回复
class printXx { public static void main(String[] args) { Forx1(); Forx2(); } public void Forx1() { for(int x=1;x<=4;x++) { for(int y=4;y>x;y--) { System.out.print(" "); } for(int z=0;z<2x-1;z++) { System.out.print("*"); } System.out.println(); } } public void Forx2() { for(int x=5;x<=7;x++) { for(int y=4;y<x;y++) { System.out.print(" "); } for(int z=0;z<15-2x;z++) { System.out.print("*"); } } System.out.println(); } }
student-ai 2014-11-17
  • 打赏
  • 举报
回复
看不明白。。。还是高亮代码舒服一些
fireofsun 2014-11-17
  • 打赏
  • 举报
回复
main函数是static的,不能调用非static函数,你将那两个函数声明为static的试试
ghx287524027 2014-11-17
  • 打赏
  • 举报
回复
打印任意行数的菱形: import java.util.Scanner; public class TestObject { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入一个大于2的奇数:");// 决定打印多少行(必须是奇数)。 int row = scanner.nextInt(); int k = (row - 1) / 2;// 控制每行打印空格的个数,初始值为(行数-1)/2 int x = 1;// 控制每行打印星星的个数,初始值为1 int kb = -1;// 控制空格的变化规律,中间行之前是依次减一,之后是依次增一 int xb = 2;// 控制星星数目的变化规律,中间行之前是依次减二,之后是依次增二 for (int i = 1; i <= row; i++) {// 外层循环,控制行数 for (int j = 1; j <= k; j++) {// 内层循环,控制空格数 System.out.print(" "); } for (int h = 1; h <= x; h++) {// 内层循环,控制星星数 System.out.print("*"); } System.out.println();// 一行打印完毕要换行 if (i == (row + 1) / 2) {// 如果到了中间行,规律变化 kb = -kb; xb = -xb; } k = k + kb;// 每行空格个数的变化 x = x + xb;// 每行星星个数的变化 } } }
多木多多木 2014-11-17
  • 打赏
  • 举报
回复
public void Forx1()和public void Forx2()这两个部分修改下,改成public static void Forx1()和 public static void Forx2(),静态函数不能再上下文直接引用非静态的成员。你也可以在main函数中定义一个本类的对象,然后用这个对象去调用原来的Forx1()和Forx2()两个方法。
繁华终归落尽 2014-11-17
  • 打赏
  • 举报
回复
是不是老师不让用IDE,让用记事本敲啊
雪城无月 2014-11-17
  • 打赏
  • 举报
回复
唉,有三个错误: 1、你在main方法中直接调用Forx1()和Forx2()是不行的,要么新建对象来调用,要么改写成static方法; 2、for(int z=0;z<2x-1;z++)是个什么鬼?2x?还是2*x? 3、Forx2()的循环里面写错了

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧