找回密碼 或 安全提問
 註冊
|註冊|登錄

伊莉討論區

搜索
發表文章前請先閱讀相關版規你準備好成為出色的版主了嗎?安全提問(回答) 和 永久尊貴會員 事宜
mg強姦sirogdoffice自慰
adobe 20juq496婚戒物語死神看門狗 d霹靂天命

休閒聊天興趣交流學術文化旅遊交流飲食交流家庭事務PC GAMETV GAME
熱門線上其他線上感情感性寵物交流家族門派動漫交流貼圖分享BL/GL
音樂世界影視娛樂女性頻道潮流資訊BT下載區GB下載區下載分享短片
電腦資訊數碼產品手機交流交易廣場網站事務長篇小說體育運動時事經濟
上班一族博彩娛樂

余家儀 衣服直接滑下

[繁]香格里拉・開拓異

[繁]反派千金等級99~

[簡]為了在異世界也能

[繁]秒殺外掛太強了,

[繁/無修正]婚戒物語
C & C++ 語言C# 語言Visual Basic 語言PHP 語言JAVA 語言
查看: 4281|回復: 5

[問題] 有關if的小小基礎問題...[複製鏈接]

Rank: 1

帖子
235
積分
175 點
潛水值
6380 米
發表於 2017-3-4 11:06 AM|顯示全部樓層
本帖最後由 阿次阿 於 2017-3-4 12:25 PM 編輯

小弟一直不懂if(star)這裡是什麼意思因為沒有比較任何東西,不知道他這邊再判定什麼
請各位鞭小力一點><
附件: 你需要登錄才可以下載或查看附件。沒有帳號?註冊
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6Rank: 6

帖子
421
積分
1448 點
潛水值
48495 米
發表於 2017-3-4 07:37 PM|顯示全部樓層
若瀏覽伊莉的時侯發生問題或不正常情況,請使用Internet Explorer(I.E)。
if 括號裡的東西是判斷真(true)或是假(false)
而判斷的標準是0為假其他一切非0的都是真
一般看到 star == 1 是 == 做了一次運算
當 star 是 1 的時候他會回傳 1 這個值
if 看到了就會認為他是真
所以這邊 if(star) 的意思會跟 if(star != 0) 幾乎一模一樣
但是 if(star) 會比 if(star != 0) 少了一個運算
所有積分大於負-100的壞孩子,將可獲得重新機會成為懲罰生,權限跟幼兒生一樣。

使用道具檢舉

CoNsTaRwU 該用戶已被刪除
發表於 2017-3-5 07:14 PM|顯示全部樓層
本帖最後由 CoNsTaRwU 於 2017-3-6 11:43 PM 編輯

對 C:
所有 if 小括號內的表達式會被轉型為 int 之後判斷是否不等於 0
也就是說,以下兩句會被 C 視為相等的
  1. if (expr) stmt
  2. if ((int)(expr) != 0) stmt
複製代碼
對 C++:
會被轉型為 bool 之後判斷是否等於 true
以下兩句在 C++ 中可以看成是相等的
  1. if (expr) stmt
  2. if ((bool)(expr) == true) stmt
複製代碼
以上兩個例子中
expr 可以是任意表達式 (變數、判斷式、計算、函數呼叫、任何可以寫在 if 小括號中的東西)
stmt 可以是任意敘述 (區塊、表達式、任何以分號結尾的東西)
...
瀏覽完整內容,請先 註冊登入會員
若對尊貴或贊助會員有任何疑問,歡迎向我們查詢。我們的即時通或MSN: admin@eyny.com

使用道具檢舉

Rank: 2Rank: 2

帖子
241
積分
299 點
潛水值
22810 米
發表於 2017-3-6 09:27 AM|顯示全部樓層
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
這是自然語法, 撰寫方式, 以及電腦語法的模糊地帶.

就多數電腦語言而言, 0->視為FALSE, 非0->視為TRUE.
所以 if(var) => 只是依據var是否為零, 決定其判斷條件是FALSE/TRUE

在自然語言閱讀的時候, 其實就語意上並不容易判斷這種撰寫方式, 就我個人意見, 有兩種方式,一, 在命名上稍微花點心思, 就能解決這樣的現象, 二, 對於有非FALSE/TRUE的比較, 避免Magic Number, 以具名常數替代純數字.
...
瀏覽完整內容,請先 註冊登入會員

使用道具檢舉

jd3 該用戶已被刪除
發表於 2017-3-7 01:20 AM|顯示全部樓層
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。
路過建議你的 code 排版一下比較好




如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。

使用道具檢舉

o_g349 該用戶已被刪除
發表於 2017-9-13 12:30 PM|顯示全部樓層
如果發覺自己無法使用一些功能或出現問題,請按重新整理一次,並待所有網頁內容完全載入後5秒才進行操作。
include 發表於 2017-3-4 07:37 PM
下載: 訪客無法瀏覽下載點,請先 註冊登入會員

if 括號裡的東西是判斷真(true)或是假(false)
而判斷的標準是0為假其他一切非0的都是真
一般看到 star == 1 ...

沒有少了一個運算這回事,兩者編譯出來的組合語言是一樣的,一樣是判斷 star 是否不等於 0,兩個都會生成 test eax, eax 這樣的組合語言...
瀏覽完整內容,請先 註冊登入會員

點評

o_g349 我當然知道最佳化產生的組合語言會不一樣,但這跟我說的有關嗎? 你給個「在開了最佳化的條件下,拿掉 != 0 導致少了一個運算」的例子  發表於 2017-9-14 09:55 AM
include 要看編譯器有沒有做優化喔,有做優化才會一樣,沒有做就會有差  發表於 2017-9-14 08:51 AM
成為伊莉的版主,你將獲得更高級和無限的權限。把你感興趣的版面一步步地發展和豐盛,那種滿足感等著你來嚐嚐喔。

使用道具檢舉

您需要登錄後才可以回帖 登錄 | 註冊

Powered by Discuz!

© Comsenz Inc.

重要聲明:本討論區是以即時上載留言的方式運作,對所有留言的真實性、完整性及立場等,不負任何法律責任。而一切留言之言論只代表留言者個人意見,並非本網站之立場,用戶不應信賴內容,並應自行判斷內容之真實性。於有關情形下,用戶應尋求專業意見(如涉及醫療、法律或投資等問題)。 由於本討論區受到「即時上載留言」運作方式所規限,故不能完全監察所有留言,若讀者發現有留言出現問題,請聯絡我們。有權刪除任何留言及拒絕任何人士上載留言,同時亦有不刪除留言的權利。切勿上傳和撰寫 侵犯版權(未經授權)、粗言穢語、誹謗、渲染色情暴力或人身攻擊的言論,敬請自律。本網站保留一切法律權利。
回頂部