黑马程序员技术交流社区
标题:
...if...else
[打印本页]
作者:
黑马连家华
时间:
2012-5-13 21:17
标题:
...if...else
本帖最后由 黑马连家华 于 2012-8-13 17:22 编辑
import java.io.*;
class ReadIn
{
public static void main(String[] args) throws IOException
{
//myReadIn();
//输入over后停止程序
readExitByOver();
}
public static void readExitByOver() throws IOException
{
InputStream is = System.in;
//定义一个容器
StringBuffer sb = new StringBuffer();
int buffer = 0;
while (true)
{
buffer = is.read();
if (buffer == '\r')
{
continue;
}
if (buffer == '\n')
{
if ("over".equals(sb.toString()))
{
break;//可是这里都有一个break了,这里break了还能执行到下边的else?
}
System.out.println(sb.toString().toUpperCase());
sb.delete(0,sb.length());
}
else//谁能告诉我为什么必须加这个else,差别太大了
sb.append((char)buffer);
}
is.close();
}
//肿么办呐亲...我还是不懂
作者:
张亭
时间:
2012-5-13 21:53
不加 else的话,sb.append((char)buffer);
会连换行符也添加到sb中
作者:
黑马-李勇
时间:
2012-5-13 22:00
if (buffer == '\n')
{
if ("over".equals(sb.toString()))
{
break;
}
System.out.println(sb.toString().toUpperCase());
sb.delete(0,sb.length());
}
else//这个else是buffer == '\n'的else。
sb.append((char)buffer);
}
作者:
黑马-王建雨
时间:
2012-5-13 22:02
因为你要用它向字符串缓冲区添加元素呀。
作者:
崔陈喜
时间:
2012-5-13 22:07
如果不加else,哪能的到你想输出的东西。else后面跟的是一种情况。
作者:
赵方明
时间:
2012-5-13 22:27
if (buffer == '\r')
{
continue;
}
if (buffer == '\n')
{
if ("over".equals(sb.toString()))
{
break;
}
System.out.println(sb.toString().toUpperCase());
sb.delete(0,sb.length());
}
else//谁能告诉我为什么必须加这个else,差别太大了
sb.append((char)buffer);
加了else满足buffer == '\r'条件时就运行if中的语句,否则运行 sb.append((char)buffer);
如果不加else,无论满不满足if中的条件,都会运行 sb.append((char)buffer);
作者:
黑马连家华
时间:
2012-5-14 16:25
查看50回复5,难道这就是有人说的不屑回答的经典战斗鸡贴?....这不是刷分贴...继续等
作者:
黑马连家华
时间:
2012-5-14 16:51
好吧我知道了...查看这么多次是我自己一次次刷新造成的
作者:
小小企鹅
时间:
2012-5-14 18:43
不加else,就不执行sb.append((char)buffer); 了,如果回车就打印内容。
作者:
黑马连家华
时间:
2012-5-14 19:10
好吧,也许最近状态不好,,,看不懂,算了,我想以后会明白的
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2