进阶判断式教学(新手可参考)

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