解决方案 »

  1.   

    l=1;
    break;
    因为 l 等于1 就跳出了进入 else。
      

  2.   

    还有a=in.read(b,0,2); 读取的是length不是int值
      

  3.   

    代码格式化
    if后面加{}
    else后面加{}
      

  4.   

    for(int i=0;i<6;i++){
    if(y[i]==a)
    l=1;
    break;
    }这个循环,一执行,I就不会为0了!!
      

  5.   

    我给你写个简单点的,思路跟你的一样,还有效率更好的方法
    public class FindsortTest
    {
    public static void main(String[] args)
    {
    int a = 9;
    boolean x = true;
    int[] y ={ 2, 4, 5, 7, 9, 0 };
    for (int i=0; i<6; i++)
    {
    if (a == y[i])
    {
    System.out.println("找到");
    x = false;
    }
    }
    if (x)
    {
    System.out.println("没找到");
    }
    }
    }
      

  6.   

    楼主注意几点,既然你比较数字、建议用java提供 Scanner类的 nextInt方法 直接比较。你不想用的话 就用new String(字节)将字节转字符再转int去比较。按楼主的比较是错的,楼主是这样a=in.read(b,0,2);if(y[i]==a) 这样结果就是拿着read方法返回的成功读的字节个数去和y值比较了,并非楼主想要的拿着输入的数去比较。应该这样String s=new String(b)
    int bb=Integer.parseInt(s);
    if (y[i] == bb)
    还有楼主要注意 既然只比较数字,(你输入的时候java将一个数字或字符作为1个字节)那就byte b[] = new byte[1]; 下面代码的out.write数字也改成1。免得将"\r\n"也输入进来,parseInt的时候会出错。