簡體   English   中英

根據增量切換布爾值

[英]switch boolean based on increments

我正在表達MEL,但是我認為該語言沒有意義。 這個問題更多是一個編碼邏輯問題。 通常,我會在javascript(我比較熟悉)中做類似的事情,然后進行翻譯,但是我有點受限於要使用的方法,即是否使用其他方法,循環,切換等?

這是我要達到的目的的一個示例(我以一種通用語法實現了它,所以語言沒什么大不了的):

變量myA是用戶輸入數字變量。

變量myB是一個數字變量,它將根據var myA的輸入以以下方式進行調整。

myA:Number;
myB:Number;

my_bool = true; 
if (!my_bool){
    myB*=-1;
}

if(myA>45){
    my_bool = false;
    //for every 90 units up switch boolean
}

基本上,評論部分就是我被困住的地方。 我想設置一個在myA大於45之后起作用的開關,然后從這一點開始,當var myA上升90個單位時切換my_bool 45 + 90 = 135,因此在135時它將切換為true,而當myA等於225時將在90個單位后, my_bool將無限期切換為false,依此類推。 我不知道是否應該使用if循環,某種循環,或者是否存在完全適合這種情況的循環。

這應該可以解決您的問題:

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

  return doNothing ? "nothing" : myA;
}

它返回“什么都不做”,是,是假。

我嘗試了以下算法來滿足您的需求,我將在代碼后解釋它們:

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,則它將檢查0到400范圍內的數字(加上前45個數字)是否可以被90而不是45整除。本身(因為我們不想將布爾值切換為45,對吧?)。 如果它是可整除的,則檢查布爾值實際上是True還是False,並以此為基礎進行切換。 並打印結果。

如果以上均未發生,則僅在for循環中輸出當前數字。

如果my_a輸入小於45,則my_b將獲得-1值。

希望能幫助到你!

遵循以下原則

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM