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