2016-06-24 4 views
3

Мой первый фрагмент:Different между ними, если еще и вернуть

public bool isSmall(int x) 
{ 
    if (x == 0) 
    { 
     return true; 
    } 
    else 
    { 
     if (x < Smallest) 
     { 
      return true; 
     } 
     else 
     { 
      return false; 
     } 
    } 
} 

Мой второй фрагмент:

public bool isSmall(int x) 
{ 
    if (x == 0) 
    { 
     return true; 
    } 

    if (x < Smallest) 
    { 
     return true; 
    } 

    return false; 
} 

То, что я хочу, это if (x == 0) просто возвращает истину, если не делать другое сравнение, if (x < Smallest) и если true возвращает true, в противном случае возвращает false. Я знаю, что мой кулак и второй код делают то же самое, но мне интересно, как лучше писать, лучше, ласково и безопасно? есть ли у них какие-то реальные различия? Или это всего лишь два способа написать это?

+5

Вы можете просто написать 'return x == 0 || x user902383

+0

Java и C# - это два разных языка –

+0

Что вы не понимаете, если еще и возвращаются ..? – MethodMan

ответ

1

Они делают то же самое. Второй может быть немного более эффективным, если код был скомпилирован непосредственно как написанный (так как из-за опущенного else есть один более короткий оператор ветвления). Тем не менее, все современные компиляторы будут оптимизировать это, чтобы они были точно такими же.

Чтобы ответить на ваш вопрос (что лучше), в зависимости от того, что вам легче читать и понимать, лучше, так как они делают то же самое.

6

Компилятор, вероятно, оптимизировать либо один из ваших подпрограмм на следующее:

public bool IsSmall(int x) 
{ 
    return (x == 0 || x < Smallest); 
} 

Чтобы понять, почему, выписывать & заливки в булевой таблице истинности для каждого набора методов.

+0

Благодарим вас за ответ. Я понимаю, о чем вы говорите, и я согласен с вами. Тем не менее, я просто хочу кое-что узнать. Например, как компилятор будет обрабатывать мои коды? Как и вы сказали, компилятор, вероятно, оптимизирует мой код, но каким образом это привязанность и сохранение? –

+0

Единственный способ узнать, посмотреть на выход компилятора и проверить его. C# скомпилирован на язык CIL (https://en.wikipedia.org/wiki/Common_Intermediate_Language), который вы можете открыть в любом текстовом редакторе и посмотреть. Многие, многие инженерные часы перешли на любой компилятор, который вы используете, чтобы распознавать различные шаблоны кода и оптимизировать их. Кстати, если вы довольны ответом, нажмите зеленую галочку рядом с ней. Ура! –

1

Оба являются читаемыми, но с точки зрения перспективы.

Первый из них является более безопасным, поскольку более читаемым (читаемый с точки зрения вы можете прочитать и показать в вашей голове легче)

Я обычно использую второй, он выглядит чище (кажется более удобным для чтения, но более усложняют следует понимать)

Об удобочитаемости; для небольшого числа if-else первое лучше, но больше числа if-else (например, 10) второго.

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