黑马程序员技术交流社区

标题: IO键盘录入中的的一个问题????????????? [打印本页]

作者: 乔九    时间: 2013-2-25 10:29
标题: IO键盘录入中的的一个问题?????????????
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
作者: 付玉光    时间: 2013-2-25 11:59

哥们,在此代码中,因你在continue;语句前没加条件判断语句,所以while循环
每执行到contine;都会跳过本次后面的代码而重新执行whele循环体中的内容。
你的这种做法类似于在return语句后再加其它代码一样,是永远执行不到的。
作者: 刘凯    时间: 2013-2-25 12:10
    if(ch=='\r');
多了个分号,导致continue;没有运行 '\r' 被写进sb  进而读到'\n'时 s="over\r”  不能跳出循环
姐就是断货 if(ch=='\n')执行到了  只是没能读到"over" 不能跳出循环
作者: 杨剑    时间: 2013-2-25 14:17
因为你写的这句代码if(ch=='\r')后面加了分号,下面的continue和if语句没有关系,每次都会读到continue;就然后会一直继续当前循环,所以不会执行下面的代码。




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