黑马程序员技术交流社区

标题: ...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