2013-06-01 4 views
0

Если у меня есть функция с 2 входами, есть ли способ проверить ее диапазон, кроме вложенных, если функции?Тестирование логики с более чем 1 && оператором?

Например ...

if input1 > 0 && input1 <10 && input2 > 0 && input2 <10 

это не работает, так что я вынужден написать

if input1 > 0 && input1 <10 
    if input2 > 0 && input2 <10 
    '%something 
    end 
end 

Существуют более простые способы, чтобы проверить диапазон нескольких входов?

+3

Почему первое выражение не работает? нет никакой разницы между этими двумя выражениями, если вы не хотите писать еще какой-нибудь код между операторами if. – bla

+0

Я думаю, может быть, вы говорите, что это «не работает» с [short circuiting] (http: // www .mathworks.com/help/matlab/matlab_prog/operator.html # f0-39129) поведение оператора '&&'. Например, если 'input1> 0' возвращает' false', то ни одно из других условий не будет оценено. Это не обязательно «проще», но для таких вещей также доступен класс ['inputParser'] (http://www.mathworks.com/help/matlab/ref/inputparserclass.html). – horchler

ответ

1

Я не знаю способ избежать вложенным, если функции, но вы можете избежать повторения:

В JavaScript:

function test(argument1,argument2) { 
    check = 0; 
    for (i=0;i<arguments.length;i++){ 
     if (arguments[i] > 0 && (arguments[i] < 10)) { 
      check++; 
      if (check === arguments.length) { 
       //do something 
      } 
     } 
    } 
} 
test(1,2); 
+0

Это похоже на доказательство 1 = 1 через интеграцию. –

0

Попробуйте это в Matlab:

find((input1==1:20),1) & find((input2==50:100),1)

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