帮忙解决一个问题

discoverer126 2012-11-28 09:17:07
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后跟语句就不能编译通过?
...全文
188 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhaoming262350 2012-11-28
  • 打赏
  • 举报
回复
这样就行了: 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); } } }
qq1137668388 2012-11-28
  • 打赏
  • 举报
回复
if后去分号
  • 打赏
  • 举报
回复
if ("over".equals(sb.toString()));后面多个分号,break不知道找谁了。
MiceRice 2012-11-28
  • 打赏
  • 举报
回复
常见错误:多余的“分号” if ("over".equals(sb.toString()));

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧