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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Geek_001 中级黑马   /  2014-6-22 15:02  /  1761 人查看  /  30 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Geek_001 于 2014-6-23 10:07 编辑

如何解决下面的死循环问题?

获.PNG (149.27 KB, 下载次数: 15)

获.PNG

30 个回复

倒序浏览
你这是死循环? 里面的show()是抽象的吧
回复 使用道具 举报
姿_`态 发表于 2014-6-22 15:20
你这是死循环? 里面的show()是抽象的吧

亲,如何解决这个死循环?想想办法
回复 使用道具 举报
Geek_001 发表于 2014-6-22 18:42
亲,如何解决这个死循环?想想办法

既然你已经知道他是死循环,你为什么还要那么写呐。别让他相互调用不就好了
回复 使用道具 举报
本帖最后由 18353666072 于 2014-6-22 19:26 编辑

把内部类里的函数里面的show删了就好了啊
回复 使用道具 举报
谁知道你的目的是想干嘛啊!这肯定死循环啊~
回复 使用道具 举报
波涛 发表于 2014-6-22 19:34
谁知道你的目的是想干嘛啊!这肯定死循环啊~

仁兄!确实是死循环,问题是如何让内部类调用外部类函数,外部类函数调用内部类函数的要求下不死循环?
回复 使用道具 举报
18353666072 发表于 2014-6-22 19:23
把内部类里的函数里面的show删了就好了啊

是死循环,问题是如何让内部类调用外部类函数,外部类函数调用内部类函数的要求下不死循环?
回复 使用道具 举报
姿_`态 发表于 2014-6-22 19:21
既然你已经知道他是死循环,你为什么还要那么写呐。别让他相互调用不就好了 ...

仁兄,我也不想写啊,要求是如何让内部类调用外部类函数,外部类函数调用内部类函数的要求下不死循环?
回复 使用道具 举报
Geek_001 发表于 2014-6-22 20:37
仁兄!确实是死循环,问题是如何让内部类调用外部类函数,外部类函数调用内部类函数的要求下不死循环? ...

你表述的这种内外互相调用的逻辑本身就是个死循环啊,程序写出来理所当然就是死循环了,总得有一个让他们结束的一个条件的。
  1. public class Main
  2. {
  3.      public static void main(String[]args)
  4.     {
  5.       //外部类调用内部类
  6.      new Outer().new Inner().inner();
  7.     }
  8. }
  9. class Outer
  10. {
复制代码


回复 使用道具 举报
  1. public class Main
  2. {
  3.     public static void main(String[]args)
  4.         {
  5.                 //外部类调用内部类
  6.            new Outer().new Inner().inner();
  7.         }

  8. }
  9. class Outer
  10. {
  11.         ////建立外部类成员变量私有,并赋值
  12.         private String name = "I love you";
  13.         //建立外部类函数
  14.         void show()
  15.         {
  16.            System.out.println("This is show method!");
  17.           //new Inner().inner();
  18.         }
  19.         //建立内部类
  20.         class Inner
  21.         {
  22.                 void inner()
  23.                 {
  24.                         //内部类调用外部类成员
  25.                    System.out.println("outer:"+name);
  26.                         //调用外部类方法
  27.                    show();
  28.                 }
  29.         }
  30. }
复制代码
回复 使用道具 举报

亲,你好像只是复制了额的代码?
回复 使用道具 举报
Geek_001 发表于 2014-6-22 23:19
亲,你好像只是复制了额的代码?

这个不会出现死循环!改了17、18行
回复 使用道具 举报
[code] class Main
{
    public static void main(String[]args)
        {
                //外部类调用内部类
           new Outer().new Inner().inner(5);
        }

}
class Outer
{
        ////建立外部类成员变量私有,并赋值
        private String name = "I love you";
        //建立外部类函数
        void show(int x)
        {
                        while((x--)!=0)
                        {
                                return;
                        }
           System.out.println("This is show method!");
          new Inner().inner(x);
        }
        //建立内部类
        class Inner
        {
                void inner(int i)
                {
                        //内部类调用外部类成员
                   System.out.println("outer:"+name);
                        //调用外部类方法
                   show(i);
                }
        }
}
函数要传参,设定条件  递减,循环到一定次数就退出循环了
回复 使用道具 举报
陈云阳 发表于 2014-6-23 00:52
[code] class Main
{
    public static void main(String[]args)

while((x--)!=0)
                {
                     return;
                }
什么都不返回吗?
回复 使用道具 举报
姿_`态 发表于 2014-6-22 15:20
你这是死循环? 里面的show()是抽象的吧

你从哪看出来是抽象的啊!我没设置啊!
回复 使用道具 举报
波涛 发表于 2014-6-22 23:29
这个不会出现死循环!改了17、18行

改了后,外部类如何访问内部类函数?
回复 使用道具 举报
陈云阳 发表于 2014-6-23 00:52
[code] class Main
{
    public static void main(String[]args)

有时间请详解一下,递减的那段代码.
回复 使用道具 举报
Geek_001 发表于 2014-6-23 01:17
你从哪看出来是抽象的啊!我没设置啊!

我看错啦,不好意思啊
回复 使用道具 举报
Geek_001 发表于 2014-6-23 01:16
while((x--)!=0)
                {
                     return;

你这是函数是void,要有返回值不就错了,只为用来退出循环的
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马