服务器循环接收部分:String data=null; while((data=bfr.readLine())!=null) {System.out.println("我是服务器,客户端说:"+data);}
和String data=bfr.readLine(); while((data!=null)
{System.out.println("我是服务器,客户端说:"+data);}
这两种循环语句表述有什么不同呢?为什么一个只循环读取一次而另一个是无限循环??
data = bfr.readLine() 在循环外只赋值一次,在循环里赋值多次
(1)String data=bfr.readLine(); while((data!=null)
data在while循环之前赋值,并且while循环时没有对其修改,所以while一直循环。
(2)while((data=bfr.readLine())!=null)
每次while循环都对data重新赋值为bfr.readLine(),所以读到null时终止循环。
明白了吗?望采纳。
第一个它是data不停改变值,即bfr.readLine()的内容,当bfr.readLine()为null时,赋值给data后,while里面判断语句变为false,就停止循环了;而第二个的bfr.readLine()不为空的值赋值给data后,在循环语句的data!=null就一直为true,所以这个循环语句是无限循环的