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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 孙百鑫 于 2013-6-24 00:19 编辑

题目:模拟妈妈做饭,做饭时发现没有盐了,让儿子去买盐(假设买盐需要3分钟),只有盐买回来之后,妈妈才能继续做饭的过程。
代码:
  1. public class Test10
  2. {
  3.         public static void main(String args[])
  4.         {
  5.                 System.out.println("妈妈做饭中。。。");
  6.                 boolean salt=false;   //用salt代表盐,初始化为false表示没有盐。
  7.                 while(salt==false)
  8.                 {   
  9.                         //用try catch 来处理没有盐的状况。
  10.                         try
  11.                         {
  12.                                 System.out.println("忽然就发现没有盐了!!!");
  13.                                 new NullSalt(true);   //让儿子去买盐,调用NullSalt这个类。
  14.                         }
  15.                         catch(Exception e)
  16.                         {
  17.                                 e.printStackTrace();
  18.                         }
  19.                         System.out.println("妈妈继续做饭。。。");
  20.                 }        
  21.         }
  22. }
  23. class NullSalt
  24. {
  25.         NullSalt(boolean nullsalt)
  26.         {
  27.                 if(nullsalt==true)
  28.                 {
  29.                         System.out.println("随即喊儿子买盐去");
  30.                         new Son().getSalt();
  31.                 }
  32.         }
  33. }
  34. class Son
  35. {
  36.         public void getSalt()
  37.         {
  38.                 try
  39.                 {
  40.                         Thread thread = Thread.currentThread();
  41.                         thread.sleep(180000);
  42.                         System.out.println("儿子花了整整三分钟,盐终于买回来了");
  43.                 }
  44.                 catch(InterruptedException e)
  45.                 {   
  46.                         e.printStackTrace();
  47.                 }
  48.         }
  49. }
复制代码
结果:
  1. 妈妈做饭中。。。
  2. 忽然就发现没有盐了!!!
  3. 随即喊儿子买盐去
  4. 儿子花了整整三分钟,盐终于买回来了
  5. 妈妈继续做饭。。。
  6. 忽然就发现没有盐了!!!
  7. 随即喊儿子买盐去
  8. 儿子花了整整三分钟,盐终于买回来了
  9. 妈妈继续做饭。。。
  10. 忽然就发现没有盐了!!!
  11. 随即喊儿子买盐去
  12. 儿子花了整整三分钟,盐终于买回来了
  13. 妈妈继续做饭。。。
  14. 忽然就发现没有盐了!!!
  15. 随即喊儿子买盐去
  16. 儿子花了整整三分钟,盐终于买回来了
  17. 妈妈继续做饭。。。
  18. 忽然就发现没有盐了!!!
  19. 随即喊儿子买盐去
复制代码
结果一直循环着显示,看了好久没发现问题出在哪儿啊{:soso_e118:} 求高手指点一下,谢谢了!!



评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 赞一个!

查看全部评分

5 个回复

倒序浏览
测试题尽量还是应该独立完成的
回复 使用道具 举报
恩恩,独立完成。刚才回头又仔细看了一下,发现是while捣的鬼,改成if就OK了!{:soso_e130:}
回复 使用道具 举报
while(salt==false)这句出问题了。salt初始化是false false==false 和while(true)一样。
回复 使用道具 举报
while是循环语句不是判断语句
回复 使用道具 举报
恩恩,记住了,小小的if判断和while循环用错了,结果就大大的不一样了。 谢谢了啊!{:soso_e156:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马