2015-01-13 4 views
-2

Я чувствую, что могу упростить это больше, но я не могу.Есть ли способ упростить это дальше?

If A^B Then 
    C = True 
Else 
    C = False 
End If 

If A = True Then 
    D = True 
Else 
    D = False 
End If 

Редактировать: Я упростил свою проблему, это моя ошибка. C и D не являются булевыми значениями, а действительными значениями для назначения переменных в функции.

Edit2: Функция выглядит так:

If hasFoo() And hasBar() Then 
    C = getValue1() 
Else 
    C = getValue2() 
End If 

If hasFoo() Then 
    D = getValue3() 
Else 
    D = getValue4() 
End If 
+2

'C = A^B',' D = A'? – GSerg

+0

'C = A^B' и' D = A'? – Sirko

+0

В зависимости от языка кодирования вы можете сделать это в одной строке 'C = (D = A)^B;' – chancea

ответ

2
C = (A^B) 

если А логический тип на вашем языке:

D = A 

или

D = (A = True) 
0

Вы могли бы конечно делаю

If A^B Then 
    C = True 
Else 
    C = False 
End If 

D = A 
+0

Мне интересно узнать, почему это было отмечено ... это (а) проще и (б) функционально корректно, что соответствует оригинальным требованиям! – Liam

+0

Я не думаю, что это заслуженное голосование обязательно, но я считаю, что @Crowcoder избил вас до ответа _better_, потому что он также упрощает первое утверждение. – chancea

Смежные вопросы