我理解這種行爲的一個問題:後綴-Incrementoperator與三元表達式顯示意外的行爲
我的本意是,numberOfFilesNotFolders
得到由1
遞增Asuming該文件是不是一個目錄。
殼體1:
int numberOfFilesNotFolders = 0;
numberOfFilesNotFolders = file.isDirectory() ? numberOfFilesNotFolders : numberOfFilesNotFolders++;
numberOfFilesNotFolders
撐0
殼體2:
int numberOfFilesNotFolders = 0;
numberOfFilesNotFolders = file.isDirectory() ? numberOfFilesNotFolders : numberOfFilesNotFolders+1;
numberOfActualFilesNotFolders
被遞增並且變成1
我不明白爲什麼情況1不起作用。我看到它的方式,它應該像這樣工作:
file.isDirectory()
解析爲假numberOfFilesNotFolders++
存儲值0到numberOfFilesNotFolders
numberOfFilesNotFolders++
確實的增量
第3步應該再將numberOfFilesNotFolders
的值更改爲1,然後應該設置該值。
但實際上numberOfFilesNotFolders
保持0而我不明白。
如果有人能闡述爲什麼它保持0,那將是巨大的。
招呼 工具
用'++ numberOfFilesNotFolders'再試一次,你會看到。 – Tunaki
'x = x ++'常常是一個錯誤...... – assylias