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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

package com.itheima;
import java.io.*;
public class ReadInDemo {

        /**
         * @param args
         */
        public static void main(String[] args)throws IOException {
                // TODO Auto-generated method stub
                InputStream in=System.in;
                StringBuilder sb=new StringBuilder();
                while(true)
                {
                        int ch=in.read();
                        if(ch=='\r');
                          continue;
                        if(ch=='\n')此句执行不到??????????
                        {
                                String s=sb.toString();
                                if("over".equals(s))
                                        break;
                                System.out.println(s.toUpperCase());
                                sb.delete(0, s.length());
                        }
                        else
                                sb.append((char)ch);
                }

        }

}
报错信息:Exception in thread "main" java.lang.Error: Unresolved compilation problem:
        Unreachable code

评分

参与人数 1技术分 +1 收起 理由
李培根 + 1 神马都是浮云

查看全部评分

4 个回复

正序浏览
因为你写的这句代码if(ch=='\r')后面加了分号,下面的continue和if语句没有关系,每次都会读到continue;就然后会一直继续当前循环,所以不会执行下面的代码。
回复 使用道具 举报
    if(ch=='\r');
多了个分号,导致continue;没有运行 '\r' 被写进sb  进而读到'\n'时 s="over\r”  不能跳出循环
姐就是断货 if(ch=='\n')执行到了  只是没能读到"over" 不能跳出循环
回复 使用道具 举报

哥们,在此代码中,因你在continue;语句前没加条件判断语句,所以while循环
每执行到contine;都会跳过本次后面的代码而重新执行whele循环体中的内容。
你的这种做法类似于在return语句后再加其它代码一样,是永远执行不到的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马