[英]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.