2017-01-17 2 views
-1

У меня возникли проблемы с интерпретацией условного здесь. Какой из этих подходов был бы лучше, если бы я хотел, чтобы это условие оценивалось? Некоторый код разделили со мной, что использовал этот подход:если заявление без else или с else?

## Option 1 
k1=2 

a = "k1 is less than or equal 1" 
if(k1 > 1) { 
    a = "k1 is greater than 1" 
} 
print(a) 

Но мой инстинкт бы сделать что-то вроде этого:

## Option 2 
if(k1 > 1) { 
    a = "k1 is greater than 1" 
} else {a = "k1 is less than or equal 1"} 
print(a) 

Есть ли опасность для использования Варианта 1? В основном то, что я прошу здесь, является лучшей практикой и является ли вариант более строгим?

+1

Оба они в порядке. Вы обнаружите, что 'ifelse' используется намного больше, чем' if' в R, потому что он векторизован. Однако он снижает атрибуты, что может вызвать проблемы, если вы работаете с более сложными типами данных. – alistaire

ответ

1

Существует не так много опасности при использовании опции 1, вариант2 лучше, поскольку он позволяет другим людям лучше понимать код быстрее, так как он более заметен для чтения. Также опция1 иногда дает ошибку в сложных кодах. Но оба варианта в этом случае прекрасны.

1

Существует нет никакой опасности для использования опции 1, так как она работает так же хорошо, как вариант 2. Оператор else просто дает возможность запускать кусок кода, только если k1 меньше или равно 1.

В некоторых случаях вариант 2 не так необходим, особенно если вы только заботитесь о том, чтобы условие было истинным. Например,

if(today's date == birthday){ 

    System.out.println("Happy Birthday!"); 

} // no need for an else statement unless you want print out "today is not your b-day" 
Смежные вопросы