首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

帮忙解决一个有关问题

2012-12-22 
帮忙解决一个问题import java.io.*classReadIn{public static void main(String[] args) throws IOExcept

帮忙解决一个问题

import java.io.*;
class  ReadIn
{
public static void main(String[] args) throws IOException
{
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,sb.length();
}
else
sb.append((char)ch);

}
}
}

16至20行改为:
System.out.println(sb.toString());
if ("over".equals(sb.toString()));
    break;
sb.delete(0,sb.length());

就会无法编译,会提示“Readin.java:18: 无法访问的语句
                    sb.delete(0,sb.length());”
这是为什么?
难道会和“break”语句有关,
为什么没改之前,break后跟语句会编译通过;改之后,break后跟语句就不能编译通过?

[解决办法]
常见错误:多余的“分号”

if ("over".equals(sb.toString()));
[解决办法]
if ("over".equals(sb.toString()));后面多个分号,break不知道找谁了。
[解决办法]
if后去分号
[解决办法]
这样就行了:

import java.io.*;
public class  ReadIn
{
    public static void main(String[] args) throws IOException
    {
        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,sb.length();*/
System.out.println(sb.toString());
if ("over".equals(sb.toString()))  //if是一个条件,要进行判断,加“;”直接//就over了
    break;
sb.delete(0,sb.length());
            }
            else
                sb.append((char)ch);
 
        }


    }
}

热点排行