我给你写个简单点的,思路跟你的一样,还有效率更好的方法 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("没找到"); } } }
楼主注意几点,既然你比较数字、建议用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的时候会出错。
break;
因为 l 等于1 就跳出了进入 else。
if后面加{}
else后面加{}
if(y[i]==a)
l=1;
break;
}这个循环,一执行,I就不会为0了!!
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("没找到");
}
}
}
int bb=Integer.parseInt(s);
if (y[i] == bb)
还有楼主要注意 既然只比较数字,(你输入的时候java将一个数字或字符作为1个字节)那就byte b[] = new byte[1]; 下面代码的out.write数字也改成1。免得将"\r\n"也输入进来,parseInt的时候会出错。