第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

為什么這段代碼里面會產(chǎn)生循環(huán)?為什么 b和i的值會變化?

FileInputStream?in?=new?FileInputStream(fileName);
????????int?b=in.read();
	int?i=1;
	while((b=in.read())!=-1){
	System.out.print(Integer.toHexString(b)+"??");
		if(i++%10==0){
			System.out.println();
		}
	}

每次in.read()都會自動往后挪一個字節(jié)?

這個if條件里面,無論是否滿足都會執(zhí)行i++嗎?

正在回答

3 回答

while后面的(b=in.read())!=-1返回的是一個布爾值,而這個值只有在文件讀到結尾的時候才返回false,即in.read==-1,所以在讀完之前返回的都是true,都可以執(zhí)行循環(huán)

b的值本身不會變化,但是文件的指針pointer在每次循環(huán)后都會加1,所以每次b讀出來的值都是不一樣的

if的判斷條件是i++%10==0,先判斷i%10的值是否為0,然后自增1,此時i=i+1,然后進入下一個循環(huán),判斷i+1的值除以10余數(shù)是否為0,所以就算if的條件不滿足,i也執(zhí)行了自增

1 回復 有任何疑惑可以回復我~
#1

慕粉1052051344

運算優(yōu)先級應該是++在前,%在后吧。
2017-06-23 回復 有任何疑惑可以回復我~

結束循壞的條件是in.read()==-1,因為讀到-1就表示結束了

0 回復 有任何疑惑可以回復我~

in.read() 會后移的, 條件不滿足是不是i++的

0 回復 有任何疑惑可以回復我~
#1

慕粉4241372 提問者

最后一句沒懂。從程序執(zhí)行結果來說,就算if里面的判斷條件不滿足,i也會執(zhí)行++吧,要不然這個i的值就不會變化了
2017-03-07 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

為什么這段代碼里面會產(chǎn)生循環(huán)?為什么 b和i的值會變化?

我要回答 關注問題
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號