基于增量切换布尔值

时间:2016-01-01 17:44:08

标签: javascript python boolean increment mel

我正在制作MEL表达,但我相信这种语言有点无关紧要。这个问题更像是一个编码逻辑问题。通常我会在javascript(我更熟悉)中做这样的事情,然后翻译它,但我有点坚持使用什么方法,即if else,循环,开关等?

以下是我想要实现的一个示例(我使用的是通用语法,因此语言无关紧要):

变量myA是用户输入数字变量。

变量myB是一个数字变量,它将根据var myA的输入以下列方式进行调整。

deleteOnClose

基本上评论部分是我被困的地方。我想设置一个在 myA 大于45后运行的开关,然后从那时开始,当var myA 时切换 my_bool 上升了90个单位。 45 + 90 = 135,因此当135 myA 等于225, my_bool 将无限期地切换为false时,它将切换为true和90个单位。我不知道我是否应该使用if else,某种循环,或者是否有适合这种情况的东西。

3 个答案:

答案 0 :(得分:1)

这可以解决您的问题:

function my_bool(myA){
  var
    doNothing = myA <= 44,
    step = parseInt((myA - 45)/90)%2,
    myA = step == 1;

  return doNothing ? "nothing" : myA;
}

它返回“什么都不做”,真实,错误。

答案 1 :(得分:0)

我尝试了以下算法来满足您的需求我将在代码后解释它们:

my_a = input()
my_b = 0

my_bool = True

if my_a > 45:
    for num in range(0,400):
        if (num + 45) % 90 == 0 and not num==45:
            if my_bool == True:
                my_bool = False
            else:
                my_bool = True
            print 'My bool as switched to %s ' % my_bool
        else:
    print num
else:
   my_b -= 1 

我在这里使用过python,它的作用是: 如果my_a变量上的用户输入大于45,那么如果数字(加上前45)可被90整除而不是45本身,则它会在0到400的范围内进行检查(因为我们不想切换布尔值)在45岁,对吗?)。如果它可以被整除,那么检查布尔值是否实际为True或False,并且基于它切换它。并打印结果。

如果上述情况均未发生,则只会在for循环中打印当前数字。

如果my_a输入小于45,则my_b获得-1值。

希望它有所帮助!

答案 2 :(得分:-1)

的内容
while True:
        if ((myA-45)/90).is_integer():
            my_bool = not my_bool
        myA += 1