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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 云惟桉 初级黑马   /  2012-4-28 20:54  /  1705 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

    1. import java.io.*;
    2. class IODemo3
    3. {
    4. public static void main(String[] args) throws IOException
    5. {
    6. InputStream in = System.in;
    7. StringBuilder sb = new StringBuilder();

    8. while (true)
    9. {
    10. int ch = in.read();
    11. if(ch=='\r')
    12. continue;
    13. if(ch=='\n'){
    14. if("over".equals(sb.toString()))
    15. break;
    16. else{
    17. System.out.println(sb.toString());
    18. sb.delete(0,sb.length());
    19. }
    20. }
    21. else
    22. sb.append((char)ch);
    23. }
    24. }
    25. }
    复制代码
    想请问一下这两段代码就最后的else部分不一样,为什么输出结果不同?有无最后一个else不应该都是一样吗?
       请各路好手指教~
  1. import java.io.*;
  2. class IODemo3
  3. {
  4. public static void main(String[] args) throws IOException
  5. {
  6. InputStream in = System.in;
  7. StringBuilder sb = new StringBuilder();

  8. while (true)
  9. {
  10. int ch = in.read();
  11. if(ch=='\r')
  12. continue;
  13. if(ch=='\n'){
  14. if("over".equals(sb.toString()))
  15. break;
  16. else{
  17. System.out.println(sb.toString());
  18. sb.delete(0,sb.length());
  19. }
  20. }
  21. sb.append((char)ch);
  22. }
  23. }
  24. }
复制代码

2 个回复

倒序浏览
我的执行结果是一样的!两种写法应该没有影响!
回复 使用道具 举报
Friends★ 发表于 2012-4-28 21:09
我的执行结果是一样的!两种写法应该没有影响!


这是第一份代码的执行结果,是正确的。



这是第二份代码的结果,就删掉了最后一个else,怎么在录入键盘的时候就多出两行,
并且不能按照自定义的条件:检测到"over"字符串时结束 进行终止。。。
我也觉得两种写法是一样的,但是看了结果真让我郁闷。。。
这问题也太不是一个问题了吧。。。是在是没辙才发上来的。




回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马