socket服務(wù)器與客戶端通信問題------服務(wù)器循環(huán)接收客戶端消息
服務(wù)器循環(huán)接收部分:String data=null;? ? while((data=bfr.readLine())!=null) {System.out.println("我是服務(wù)器,客戶端說(shuō):"+data);}
和String data=bfr.readLine(); while((data!=null)?
{System.out.println("我是服務(wù)器,客戶端說(shuō):"+data);}
這兩種循環(huán)語(yǔ)句表述有什么不同呢?為什么一個(gè)只循環(huán)讀取一次而另一個(gè)是無(wú)限循環(huán)??
2018-07-13
data = bfr.readLine() ?在循環(huán)外只賦值一次,在循環(huán)里賦值多次
2017-09-01
(1)String data=bfr.readLine(); while((data!=null)
data在while循環(huán)之前賦值,并且while循環(huán)時(shí)沒有對(duì)其修改,所以while一直循環(huán)。
(2)while((data=bfr.readLine())!=null)
每次while循環(huán)都對(duì)data重新賦值為bfr.readLine(),所以讀到null時(shí)終止循環(huán)。
明白了嗎?望采納。
2017-07-28
第一個(gè)它是data不停改變值,即bfr.readLine()的內(nèi)容,當(dāng)bfr.readLine()為null時(shí),賦值給data后,while里面判斷語(yǔ)句變?yōu)閒alse,就停止循環(huán)了;而第二個(gè)的bfr.readLine()不為空的值賦值給data后,在循環(huán)語(yǔ)句的data!=null就一直為true,所以這個(gè)循環(huán)語(yǔ)句是無(wú)限循環(huán)的