A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Demo
{
        int x;
        int y;
       
        public  cfb(int a,int b)
        {
                for(int x= 0;x <9;x++)
                {
                        for(int y = 0;y<= x;x++)
                        {
                                System.out.print(x+"*"+y+"="+x*y);
                        }
                }
        }
}
class Test
{
        public void main(String[] args)
        {
                Demo s = new Demo();
               
                s.cfb(10,10);

        }
}

8 个回复

倒序浏览
本帖最后由 cyr 于 2015-5-7 08:08 编辑

你的程序问题不少啊,其一cfb()方法没有返回值类型,也要用void表示的,是方法就要写返回值类型,哪怕是空返回值也要写void;其二,你的程序应该是个死循环。你cfb方法传进去的两个形参,你在你的代码里根本没用到过。既然没有,你定义两个形参来干嘛用?问题很多呀,我给你修改了一下源码你自己看看有什么不懂的,可以问我。
  1. public class Test1 {
  2.         public static void main(String[] args) {
  3.                 Demo s = new Demo();        
  4.         s.cfb();
  5.         }

  6. }
  7. class Demo
  8. {
  9.         int x;
  10.         int y;
  11.         
  12.         public void cfb()
  13.         {
  14.                 for(int x= 1;x <= 9;x++)
  15.                 {
  16.                         for(int y = 1;y <= x; y++)
  17.                         {
  18.                                 System.out.print(y+"*"+x+"="+x*y+"\t");
  19.                         }
  20.                         System.out.println();
  21.                 }
  22.         }
  23. }
复制代码

回复 使用道具 举报 1 0
class Demo
{
         int x;
         int y;
         
         public void cfb(int a,int b)
         {
                 for(int x= 1;x <=9;x++)
                 {
                         for(int y = 1;y<= x;y++)
                         {
                                 System.out.print(x+"*"+y+"="+x*y+"\t");
                         } System.out.println();
                 }
                               
         }
}
class Test
{
         public static void main(String[] args)
         {
                 Demo s = new Demo();
                 
                 s.cfb(10,10);

         }
}
你少写了点东西,写上就好了,循环不能从0开始
回复 使用道具 举报
int x =1; x<=9;  主要错误在第二个for循环里,循环体里是int y = 1;y <= x; y++,打印里面缺少一个转义字符“\t”,循环外少一个换行System.out.println();调用时直接调用就行,加10,10什么意思。
回复 使用道具 举报
返回值类型没写,为嘛第二个循环还是x++。。问题有点多,可以去参考一下别人的代码
回复 使用道具 举报
没返回值类型,y里面还是x++,循环干嘛从0开始,99乘法表没有0吧,打印语句第一个应该先打印y。
回复 使用道具 举报
yapo 中级黑马 2015-5-7 13:53:21
7#
你是通过建立对象,调用方法打印九九乘法表,你的程序里面有不少错误啊,有不必要的成分,有错误的成分,看我给你的原代码的注释:
class Demo
{
/*①成员变量x和y完全没有必要存在,白写了,简化删掉!帅哥你在方法循环里面又重新定义了局部变量x和y,
方法执行时使用的是局部变量中的x和y,用来控制循环,循环结束,x,y的使命已完成,就不需要了。*/
        int x;
        int y;
  /*②方法的标准格式:修饰符 返回值类型 方法名(){},1.你这里没有具体返回值,返回值写void      2.帅哥你在方法参数列表设置了两个形式参数,方法
里面用到了吗?你调用方法时,接收什么参数,打印的都是九九乘法表。设置了形式参数等于白设置了,而且调用时,调用时还必须传入参数,参数还没有用。把形式参数去掉。③你要打印九九乘法表, 应该从1开始吧,把x,y初始化值设为1.
        public  cfb(int a,int b)   //  不仅没有返回值,而且没有用到形式参数,你的方法内容是打印九九乘法表,与形参无关,如果你打印 a*b的不定乘法表再这样使用吧
        {
                for(int x= 0;x <9;x++)
                {
                        for(int y = 0;y<= x;x++)
                        {
                                System.out.print(x+"*"+y+"="+x*y);
                        }
                }
        }
}

//改进后的代码:


class Demo
{


         public void cfb()
         {
                 for( int x= 1;x <=9;x++)
                 {
                         for(int y = 1;y<= x;y++)
                         {
                                 System.out.print(x+"*"+y+"="+x*y+"\t");
                         } System.out.println();
                 }

         }
}
class Test2
{
         public static void main(String[] args)
         {
                 Demo s = new Demo();

                 s.cfb();

         }
}




回复 使用道具 举报
yapo 中级黑马 2015-5-7 14:00:03
8#
楼主完全是刚刚看了一两天视频,刚学的吧,建议楼主多自学,自己多测试几次,自己就能够搞明白的
回复 使用道具 举报
楼主还要加油啊   多练练
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马