我正在做一些閱讀文件的做法,我的任務是爲非平衡文件編寫文件交錯代碼。所以,如果我有事情設置了這樣的正常工作:爲什麼要將&&更改爲||導致一個變量不被看到
while ((inputLine1 = LineSequential.read(inFileStreamName1)) != null **&&** (inputLine2 = LineSequential.read(inFileStreamName2)) != null)
注意& & ......但如果我把它改爲|| NetBeans的規定,inputLine2尚未初始化(雖然它看到inputLine1完美的罰款這種方式):
while ((inputLine1 = LineSequential.read(inFileStreamName1)) != null **||** (inputLine2 = LineSequential.read(inFileStreamName2)) != null)
現在,如果inputLine1(這是從文件中的數據)成爲空第一,我只得到每個其他行在inputLine2中(來自文件B)。在每個循環迭代中它跳過一行。我敢肯定它與在那裏我初始化inputLine2做..:
while ((inputLine1 = LineSequential.read(inFileStreamName1)) != null || LineSequential.read(inFileStreamName2) != null) {
inputLine2 = LineSequential.read(inFileStreamName2);
System.out.println(inputLine2);
if(inputLine1 != null && inputLine2 == null){
LineSequential.write(outFileStreamName, inputLine1);
}else if(inputLine1 == null && inputLine2 != null){
LineSequential.write(outFileStreamName, inputLine2);
}
else if(inputLine1 != null && inputLine2 != null){
LineSequential.write(outFileStreamName, inputLine1);
LineSequential.write(outFileStreamName, inputLine2);
}
}
'||'是短路。改用'|'代替。 – shmosel
明白了!謝謝!一條愚蠢的小線......... –