三国杀武将|手游三国杀边锋版
注冊 登錄
主題 : for循環執行順序是什么?
級別: 新手上路
UID: 677978
精華: 0
發帖: 17
可可豆: 107 CB
威望: 107 點
在線時間: 36(時)
注冊時間: 2019-03-07
最后登錄: 2019-08-19
0 樓:  發表于: 2019-05-23 11:45    發自: Web Page
來源于 一般提問 分類

for循環執行順序是什么?   

為什么我這個不滿足條件也進去了?
圖片:屏幕快照 2019-05-23 上午11.44.17.png
級別: 圣騎士

狀態: 連續簽到 - [153天]
UID: 527782
精華: 0
發帖: 688
可可豆: 1640 CB
威望: 1381 點
在線時間: 1695(時)
注冊時間: 2015-12-01
最后登錄: 2019-08-21
1 樓:  發表于: 2019-05-23 18:13    發自: Web Page
先說為什么會滿足循環條件:
首先你要知道 NSUInteger 在 64 位操作系統下相當于無符號型長整型。
你這里的 count  被聲明為 NSUInteger,執行 count - 1 得到的結果是 -1,如果不加類型強轉它實際上還是無符號型,就相當于你把一個無符號型整數賦值為 -1(NSUInteger j = -1),你打印下 NSLog(@"%luld", j); 看看輸出的是不是一個很大的數?所以會滿足循環條件。

再說說為什么上述的 j 會變成一個很大的數:
在計算機中,數字是用“補碼”表示的。
正數的補碼 = 原碼 = 反碼;
負數的補碼 = 反碼 (原碼取反,最高位符號位不取反) +1 ;
64位操作系統的下,我們計算下 -1 的補碼:
原碼:
1000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0001
反碼:
1111 1111 1111 1111 1111 1111 1111 1111
1111 1111 1111 1111 1111 1111 1111 1110
補碼:
1111 1111 1111 1111 1111 1111 1111 1111
1111 1111 1111 1111 1111 1111 1111 1111
所以就得到了一個很大的十進制數。
我是老司機,專門吹牛逼!
級別: 俠客

狀態: 連續簽到 - [3天]
UID: 546603
精華: 0
發帖: 122
可可豆: 268 CB
威望: 264 點
在線時間: 405(時)
注冊時間: 2016-03-03
最后登錄: 2019-08-19
2 樓:  發表于: 2019-05-23 19:33    發自: Web Page
回 樓主(solk) 的帖子
你的count是NSUInteger類型,是int類型,這里面牽扯到隱式轉換;你他count改成int類型就可以了;
級別: 新手上路
UID: 524982
精華: 0
發帖: 46
可可豆: 136 CB
威望: 136 點
在線時間: 139(時)
注冊時間: 2015-11-20
最后登錄: 2019-05-29
3 樓:  發表于: 2019-05-23 23:03    發自: Web Page
沒進去吧,你把斷點打進去
級別: 俠客
UID: 661017
精華: 0
發帖: 81
可可豆: 81 CB
威望: 81 點
在線時間: 194(時)
注冊時間: 2018-09-06
最后登錄: 2019-08-21
4 樓:  發表于: 2019-05-24 14:20    發自: Web Page
進不去吧,你把斷電打在里面看看。
級別: 新手上路
狀態: 連續簽到 - [5天]
UID: 618997
精華: 0
發帖: 67
可可豆: 90 CB
威望: 79 點
在線時間: 495(時)
注冊時間: 2017-07-17
最后登錄: 2019-08-22
5 樓:  發表于: 2019-05-27 09:09    發自: Web Page
此時的 count-1 是一個極大值,所以會執行到天荒地老,開心不,快樂不……
級別: 新手上路
狀態: 連續簽到 - [19天]
UID: 496792
精華: 0
發帖: 15
可可豆: 105 CB
威望: 64 點
在線時間: 234(時)
注冊時間: 2015-08-12
最后登錄: 2019-07-01
6 樓:  發表于: 2019-05-30 08:19    發自: Web Page
  int  不夠用嗎

CocoaChina社區轉載內容已盡可能注明出處,如未能核實來源或轉發內容圖片有權利瑕疵的,請及時聯系社區進行修改或刪除【聯系方式QQ : 3442093904 郵箱:[email protected]】文章內容為作者獨立觀點,不代表CocoaChina社區立場。版權歸原作者所有,如申請授權請聯系作者,因文章侵權CocoaChina社區不承擔任何法律及連帶責任。

描述
快速回復

關注本帖(如果有新回復會站內信通知您)

發帖、回帖都會得到可觀的積分獎勵。查看論壇積分規則

按"Ctrl+Enter"直接提交
    三国杀武将 頂部