标签: nested-statement

在Python中嵌套三元运算符

在禅宗的Python中,蒂姆·彼得斯说明了这一点Flat is better than nested..如果我已正确理解,那么在Python中,这个:

<statement-1> if <condition> else <statement-2>
Run Code Online (Sandbox Code Playgroud)

通常比这更受欢迎:

if <condition>:
    <statement-1>
else:
    <statement-2>
Run Code Online (Sandbox Code Playgroud)

但是,在其他语言中,我被告知不要嵌套三元运算符,而是使用传统的运算符 if...else.那么,我的问题是我应该使用这个:

(<statement-1> if <condition-1> else <statement-2>) if <condition-2> else <statement-3>
Run Code Online (Sandbox Code Playgroud)

要么

if <condition-2>:
    if <condition-1>:
        <statement-1>
    else:
        <statement-2>
else:
    <statement-3>
Run Code Online (Sandbox Code Playgroud)

?特别是如果陈述和条件很长,第一行需要拆分?

python nested-statement

10
推荐指数
2
解决办法
7168
查看次数

嵌套if/else,开关还是更有效的RPG战斗?

我正在为Android手机开发基于回合制的RPG游戏,我正在试图弄清楚如何处理具有超出损害的额外变量的攻击.例如,当目标具有燃烧效果时,我希望火焰攻击额外造成10%的伤害.我有点不确定如何以有效的方式执行此操作,以及允许将来添加到我的状态/攻击系统的方法.

所以这是我对如何做到这一点的想法:

  1. 一系列if/else语句或switch

    switch (status) {
    case burned:
        if (type == fire) {
            damage = damage * 1.1;
        }
        break;
    case frozen:
        if (type == ice) {
            damage = damage * 2;
        }
        break;
    }
    
    Run Code Online (Sandbox Code Playgroud)

    如果我对每个状态有很多可能的结果,我也可以使用嵌套开关.

  2. 使用二维数组,其x值为状态,y值为攻击或类型.检查时,[x][y]它会返回攻击中发生的更改的数值.

          Burned   Frozen
    
    Fire  [1.1]    [1]
    
    Ice   [1]      [2]
    
    Run Code Online (Sandbox Code Playgroud)

虽然现在这两个看起来都不错,但我不确定它是否适用于未来.现在,我当然可以使用改变伤害量的组合,但是那些具有非数值效果的攻击呢?我不能简单地返回一个值并将我的伤害乘以该值?

是否有可能生成某种代表以下情况的代码:

burned = 1 in first position, frozen = 2
fire attack = f in 2nd position, ice = i
damage mod is in the 3rd position

所以对被烧伤的敌人进行火力攻击 …

java android switch-statement multidimensional-array nested-statement

3
推荐指数
1
解决办法
633
查看次数

如何在JavaScript中嵌套OR语句?

目前我正在创建一个文件管理器.

我想要的是检查用户是否选择了视频文件.该文件可以是mov,f4v,flv,mp4swf.

我想检查我的var ext是否是其中之一.

我有的是:

if(ext == ('mov' || 'f4v' || 'flv' || 'mp4' || 'swf'))
{
    //Do something
}
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎么能让这个工作.我不想使用开关,因为我会收到很多案例.

javascript nested-statement

3
推荐指数
1
解决办法
366
查看次数

关于从嵌套语句返回的快速问题

如果我有类似循环或一组if/else语句的东西,并且我想从嵌套中返回一个值(见下文),那么最好的方法是将值赋给字段或属性并返回那?

见下文:

bool b;

public bool ifelse(int i)
{
if(i == 5)
{
b = true;
}

else
{
b = false;
}
return b;
}
Run Code Online (Sandbox Code Playgroud)

c# coding-style function-exit nested-statement

1
推荐指数
3
解决办法
231
查看次数