進階判斷式教學(新手可參考)

Home Home
引用 | 編輯 弒血
2013-06-05 03:48
樓主
推文 x0
寫插件時需要用到很多判斷式表情


可是以程式設計者來說,閱讀性越高越好


進入課題


普通判斷式:


if (xxx) {
    ..........
} else (.........);


進階判斷式:


(xxx) ? (......) : (.....);


有看出什麼意思嗎


再說明簡單點:


if (判斷的內容) {
    判斷為
} else (判斷為);


(判斷的內容) ? (判斷為) : (判斷為);


判斷式看個人喜好設定表情


如果要讓程式簡潔易懂我比較推薦進階判斷式;


應該是屬於高階寫法(個人認為)表情


希望有幫助到,剛學不久的人表情


如果有更好的判斷方法 ? 可以回文參考一下 : 參考此篇教學;

獻花 x0
引用 | 編輯 a7811311622
2013-06-05 23:00
1樓
  
當年某個白目表示:
http://bbs.mychat.to/reads.php?tid=901922&page=2#p6533753
而且兩者性質相同…卻稱其做「高階」不太恰當就是了…

獻花 x0
引用 | 編輯 弒血
2013-06-06 01:08
2樓
  
下面是引用 a7811311622 於 2013-06-05 23:00 發表的 : 到引言文
當年某個白目表示:
http://bbs.mychat.to/reads.php?tid=901922&page=2#p6533753
而且兩者性質相同…卻稱其做「高階」不太恰當就是了…



我個人認為必較易懂表情
而且程式碼講究以多寫少的方式表情
我當然知道 效果一樣 可是 為何不試看看用最少的方式寫出一樣的效果表情

獻花 x0
引用 | 編輯 ak47klo
2013-06-09 09:05
3樓
  
你寫的還不錯呢...
以前常搞混 現在懂了
謝啦 表情

獻花 x0
引用 | 編輯 弒血
2013-06-09 13:16
4樓
  
下面是引用 ak47klo 於 2013-06-09 09:05 發表的 : 到引言文
你寫的還不錯呢...
以前常搞混 現在懂了
謝啦 表情



多看一些大神的插件內容
多少也會學到一點

獻花 x0
引用 | 編輯 Marchillus
2013-06-13 19:51
5樓
  
(判斷的內容) ? (判斷為真) : (判斷為假);
是指這樣?
(is_user_alive(id))?(user_kill(id)):(return PLUGIN_HANDLED);

獻花 x0
引用 | 編輯 弒血
2013-06-14 12:21
6樓
  
下面是引用 ffgh478tw 於 2013-06-13 19:51 發表的 : 到引言文
(判斷的內容) ? (判斷為真) : (判斷為假);
是指這樣?
(is_user_alive(id))?(user_kill(id)):(return PLUGIN_HANDLED);



(is_user_alive(id))?(user_kill(id)):(return PLUGIN_HANDLED)


如果是活者 使用自殺....如果不是活著返回中斷..


我以顏色做區別 這樣應該看得出來用法

獻花 x0
引用 | 編輯 Crazygay
2013-06-14 19:53
7樓
  
有點難
表情

獻花 x0
引用 | 編輯 Raymond9103
2013-07-13 16:58
8樓
  
1.我認為if句式比較易明白.
我不管程式簡不簡潔,
自己看懂,而且匯出成功便算吧!

2.if句式可在{ }內執行大量程式碼,
但我不知() ? () : ()可以嗎,
而且() ? () : ()執行大量程式碼,
看起來會很亂嗎?

純屬個人意見.

不過還是支持! 表情

獻花 x0
引用 | 編輯 a7811311622
2013-07-15 22:17
9樓
  
下面是引用 Raymond9103 於 2013-07-13 16:58 發表的 : 到引言文
1.我認為if句式比較易明白.
我不管程式簡不簡潔,
自己看懂,而且匯出成功便算吧!

2.if句式可在{ }內執行大量程式碼,
但我不知() ? () : ()可以嗎,
而且() ? () : ()執行大量程式碼,
看起來會很亂嗎?

純屬個人意見.

不過還是支持! 表情  
嗯…其實是要看情況使用的…使用的條件大概是「邏輯非常簡短明確」時…
這方法是可以減少大量程式碼出現…
例如:
複製程式
new bool:infect_round
if (zp_is_nemesis_round() || zp_is_survivor_round() || zp_is_swarm_round() || zp_is_plague_round())
{
    infect_round = false
}
else
{
    infect_round = true
}
變成
複製程式
new bool:infect_round = zp_is_nemesis_round() || zp_is_survivor_round() || zp_is_swarm_round() || zp_is_plague_round() ? false : true
如果這樣還不太有感覺減少程式碼的話…比較能減少程式碼的情況大致是呼叫某函數:
複製程式
if (條件1)
{
    velocity_by_aim(id, 1000, velocity)
}
else if (條件2)
{
    velocity_by_aim(id, 500, velocity)
}
else if (條件3)
{
    velocity_by_aim(id, 250, velocity)
}
else if (條件4)
{
    velocity_by_aim(id, 125, velocity)
}
else
{
    velocity_by_aim(id, 0, velocity)
}
變成
複製程式
velocity_by_aim(id, 條件1 ? 1000 : 條件2 ? 500 : 條件3 ? 250 : 條件4 ? 125 : 0, velocity)
有的函數名稱長度實在是有夠長的…全部打包起來比較順眼(?)…

獻花 x0
引用 | 編輯 弒血
2013-07-16 11:04
10樓
  
下面是引用 a7811311622 於 2013-07-15 22:17 發表的 : 到引言文

嗯…其實是要看情況使用的…使用的條件大概是「邏輯非常簡短明確」時…
這方法是可以減少大量程式碼出現…
例如:
[code].......



我是覺得
寫程式 常常看到 if 跟 else..
雖然這是 程式 必備的...
有的時候判斷一個式子 要用到1~2 個 else 就覺得...位啥要搞得那麼複雜
程式碼 也超級長...
這是給人參考用的 要不要用 看個人

獻花 x0
引用 | 編輯 034938428
2013-09-01 20:56
11樓
  
看來我這初學者真的要好好學習了 不然真的甚麼都看不懂@@

獻花 x0
引用 | 編輯 karta2017765
2013-11-01 13:35
12樓
  
雖然沒有很懂怎麼寫 但看完這篇後才知道如何寫

獻花 x0
引用 | 編輯 S3xTy
2020-12-20 08:00
13樓
  
回 覆 鎖 定 :

  此回覆已被鎖定,只有『管理員及回覆者』看的到 !!!



獻花 x0