黑马程序员技术交流社区

标题: 请教字节流键盘输入 报错? [打印本页]

作者: 大漠孤烟    时间: 2014-4-27 22:23
标题: 请教字节流键盘输入 报错?
package com.study.io;

import java.io.IOException;
import java.io.InputStream;

public class ReadIn {

        /**
         * @param args
         */
        public static void main(String[] args)throws IOException{
       
                //创建缓冲区容器
                StringBuilder sb=new StringBuilder();
                //键盘读取流
                InputStream in=System.in;
       
                /*
                int by=in.read();
                int by1=in.read();
               
               
                System.out.println(by);
                System.out.print(by1);
*/
        /*         int ch=0;
                 while((ch=in.read())!=-1){
                         System.out.println(ch);
                 }
                 */
                //定义变量,记录读取字节
                int ch=0;
                 while((ch=in.read())!=-1){//键盘输入  ch=in.read();
                         //存储钱判断是否是换行标记,标记不用存储
                         if(ch=='\r'){
                                 continue;
                         }
                         if(ch=='\n'){
                                 String s=sb.toString();
                                 if("OK".equals(s)){
                                         break;
                                         System.out.println(s.toUpperCase());  //这里提示有错误
                                         sb.delete(0, sb.length());
                                 }else{
                                         sb.append((char)ch);
                                 }
                         }
                 }
               
        }


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

        at com.study.io.ReadIn.main(ReadIn.java:42)
我对照毕老师的笔记敲的 不知道哪里出问题。。

作者: a3330682    时间: 2014-4-27 22:56
  1.    if(ch=='\n'){
  2.                                  String s=sb.toString();
  3.                                  if("OK".equals(s)){
  4.                                          break;
  5.                                          System.out.println(s.toUpperCase());  //这里提示有错误
  6.                                          sb.delete(0, sb.length());
  7.                                  }else{
  8.                                          sb.append((char)ch);
  9.                                  }
  10.                          }
复制代码

else应该在if外面;不然你根本没存储到数据啊!
作者: fei_xiong    时间: 2014-4-28 08:55
本帖最后由 fei_xiong 于 2014-4-28 08:57 编辑

被/**/ 圈起来的部分执行不到啊,因为有break,跳出循环了,应该放到else里面,或者放到break前面
  1. if("OK".equals(s)){

  2. 04.                                         break;

  3. 05.                                    /*     System.out.println(s.toUpperCase());  //这里提示有错误

  4. 06.                                         sb.delete(0, sb.length()); */

  5. 07.                                 }else{

  6. 08.                                         sb.append((char)ch);

  7. 09.                                 }
复制代码

作者: 大漠孤烟    时间: 2014-4-28 21:59
多谢,难道我上班偷偷看毕老师的笔记敲错案了、、、




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2