黑马程序员技术交流社区

标题: 求助一个基础问题 [打印本页]

作者: 吴亨    时间: 2011-12-14 12:09
标题: 求助一个基础问题
为何输入"bye"时,程序并没有结束?

class TestString {
         public static void main (String[] args) {
                int ch = 0;
                byte[] array1 = new byte[1024];
                int pos = 0;
                String str = null;
                System.out.println("please input your char:");
                while(true) {
                        try{
                        ch = System.in.read();
                        }
                        catch(Exception ex) {}
                  switch(ch) {
                          case '\r':
                                  break;
                          case '\n':
                          {

                                  str = new String(array1,0,pos);
                                  pos = 0;

                                  System.out.println(str);
                                   if(str.equalsIgnoreCase("bye"))
                                       return;

                   }
                          default:
                                  array1[pos++] = (byte)ch;
                  }
                }
}
}

作者: 王冀    时间: 2011-12-14 12:19
  1. class TestString {
  2.          public static void main (String[] args) {
  3.                 int ch = 0;
  4.                 byte[] array1 = new byte[1024];
  5.                 int pos = 0;
  6.                 String str = null;
  7.                 System.out.println("please input your char:");
  8.                 while(true) {
  9.                         try{
  10.                         ch = System.in.read();
  11.                         }
  12.                         catch(Exception ex) {}
  13.                   switch(ch) {
  14.                           case '\r':
  15.                                   break;
  16.                           case '\n':
  17.                           {

  18.                                   str = new String(array1,0,pos);
  19.                                   pos = 0;

  20.                                   System.out.println(str);
  21.                                    if(str.equalsIgnoreCase("bye"))
  22.                                        return;
  23.                         break;  //这里缺少了break
  24.                    }

  25.                           default:
  26.                                   array1[pos++] = (byte)ch;
  27.                   }
  28.                 }
  29. }
  30. }
复制代码

作者: 小春同学    时间: 2011-12-14 12:28
本帖最后由 熊明春 于 2011-12-14 12:30 编辑

V1.0——判断是否等于bye那句代码少个break;
V2.0——唉,动作慢了,代码看了看,想一想,差个break,编辑,发表回复,刷新,有人抢先一步了{:soso_e127:} )
作者: 马伟奇    时间: 2011-12-14 12:56
在匹配换行\n的地方,加上break;跳出来就好了
作者: 马伟奇    时间: 2011-12-14 12:57
class TestString {
         public static void main (String[] args) {
                int ch = 0;
                byte[] array1 = new byte[1024];
                int pos = 0;
                String str = null;
                System.out.println("please input your char:");
                while(true) {
                        try{
                        ch = System.in.read();
                        }
                        catch(Exception ex) {}
                  switch(ch) {
                          case '\r':
                                  break;
                          case '\n':
                          {

                                  str = new String(array1,0,pos);
                                  pos = 0;

                                  System.out.println(str);
                                   if(str.equalsIgnoreCase("bye"))
                                       return;
                                    break;  //加上就可以了
                   }
                          default:
                                  array1[pos++] = (byte)ch;
                  }
                }
}
}
作者: 刘基军    时间: 2011-12-14 13:22
switch语句使用时,一般需适当的加上“break;”语句
  1. switch(i)
  2. {
  3.         case 1:
  4.         语句;break;
  5.         case 2:
  6.         case 3:
  7.         语句;break;
  8.         default:
  9.         语句;
  10. }
复制代码

作者: 吴亨    时间: 2011-12-15 12:10
那return不是直接让整个循环结束了吗?
作者: 窦超    时间: 2011-12-19 22:18
return的话就直接跳出当前方法,而break只是跳出当前循环而已





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