Это была бы невоспитанность для помещения фигурных скобок на ту же строку как оператор для одной строки “если” операторы?

Вам необходимо обновлять innerHTML всякий раз, когда вы обновляете переменную. Они не синхронизируются автоматически.

rock.addEventListener("click", function() {
  let computerSelection = computerPlay();
  let game = playRound(computerSelection, 'Rock');
  if (game === 'tie') {
    document.getElementById('result').innerHTML = 'Tie!';
  } else if (game === 'player') {
    document.getElementById('result').innerHTML = 'You win!';
    playerscore++;
    document.getElementById('playerscore').innerHTML = playerscore;
  } else {
    document.getElementById('result').innerHTML = 'You lose!';
    computerscore++;
    document.getElementById('cpuscore').innerHTML = computerscore;
  }
});

9
задан Nathan Fellman 31 October 2008 в 20:44
поделиться

21 ответ

Когда я сталкиваюсь с коротким, если оператор, я обычно пропускаю curlys и сохраняю все на той же строке:

if (something == true) DoSomething();

Это быстро, легко, и оставляет свободное место.

20
ответ дан 4 December 2019 в 05:53
поделиться

Вы - НЕПРАВИЛЬНО НЕПРАВИЛЬНАЯ НЕСПРАВЕДЛИВОСТЬ!!!!!;-)

К счастью, VS переформатировал все Ваше сумасшествие в мой лично утвержденный формат только путем замены последней изогнутой фигурной скобки в каждом файле.

Пробел является вещью стиля. Так как у нас есть различные стили чтения и изучение стилей, действительно не имеет значения, как Вы больше делаете это. Инструменты позволят нам переключиться назад и вперед. Единственный недостаток к этому, что я когда-либо замечал, является сбором, он берет отслеживание изменений в управлении исходным кодом. Когда я переформатировал файл стиля K&R в более нормальный формат (мое мнение) и перепроверяю то изменение в управление исходным кодом, это показывает почти каждую строку как изменявшийся. Это - боль. Но много различных утилит могут проигнорировать пробельные изменения (хотя самый единственный на одной строке, не охватив строки). Это - проблема. Но не выставочный стопор.

0
ответ дан 4 December 2019 в 05:53
поделиться

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

В результате это "было бы, это быть плохим" только относится к кодированию конвенций. Это зависит от контекста. Если Вы работаете над командой, это - хорошая идея спросить всех остальных, что они думают и придумывают стандартный стиль форматирования. В противном случае это действительно ваше дело.

Так, если Вы думаете, что это лучше, разрешение. В противном случае затем не делайте. Это действительно настолько просто (если Вы не используете IDE, который налагает некоторые конвенции моделирования),

0
ответ дан 4 December 2019 в 05:53
поделиться

Я обычно делаю это с короткой IFS:

if($something) {
    do_something();
}

Одно исключение (я делаю Perl, не уверенный, если этот стиль позволяется в C#), для средств управления циклом, где я использую инвертированный один стиль линии:

THING:
for my $thing (1 .. 10) {
    next THING if $thing % 3 == 0;
}

С хорошим синтаксисом, окрашивающим, возможно заставить те строки выделиться резко.

0
ответ дан 4 December 2019 в 05:53
поделиться

На самом деле я очень предпочитаю

if (something == true)
if (something == false)

if (something)
if (!something)

Для меня восклицательный знак трудно видеть сразу, так легко отсутствовать. Обратите внимание, однако, что, когда я кодирую в Python, я почти всегда предпочитаю:

if something:
if not something:

Если я не хочу не отличить Ни один от, например, пустой список.

0
ответ дан 4 December 2019 в 05:53
поделиться

Мне действительно иногда нравится делать

if(obj != null) obj.method();

Но это - виновное удовольствие... Я не думаю, что это больше делает код читаемым, таким образом почему бы не следовать за шаблоном, который все остальные используют. Одно исключение, что я думаю, довольно важно, когда Вы показываете, как это - часть большего шаблона и помощь пользователю видеть шаблон более легко:

public executeMethodOn(String cmd) {
  CommandObject co;

  if("CmdObject1".equals(cmd)) co=new CmdObject1();
  if("CmdObject2".equals(cmd)) co=new CmdObjec21();

  co.executeMethod();
}

Это делает шаблон намного более очевидным и помогает людям, пытающимся вставить новую функциональность, видят, куда это должно пойти.

Тем не менее, если у Вас когда-нибудь есть шаблон как этот, Вы, вероятно, делаете его неправильно. Я должен был сделать это в системе, которая не имела отражения, но я пытался ДЕЙСТВИТЕЛЬНО ТРУДНО работать вокруг этого, и если бы у меня было отражение, то это был бы путь awesomer.

0
ответ дан 4 December 2019 в 05:53
поделиться

Пока Вы последовательно делаете это и удостоверяетесь, что все работающие над Вашим кодом знают, как Вы делаете это, не имеет значения, что Вы делаете.

Просто сделайте то, что Вы находите самыми удобными, затем удостоверьтесь, что все знают, чтобы всегда сделать это тот путь.

0
ответ дан 4 December 2019 в 05:53
поделиться

Пока Вы последовательны, это не должна быть проблема. В предыдущей компании, которая была типичным сценарием, но в моей текущей компании они предпочитают носить брекеты на отдельных строках.

0
ответ дан 4 December 2019 в 05:53
поделиться

Тем путем Вы все еще поднимаете меньше строк (какой IMO увеличивает удобочитаемость),

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

3
ответ дан 4 December 2019 в 05:53
поделиться

Если Вы действительно хотите сохранить строки кода, можно ввести его как это:

if(something == true) { DoSomething(); }

или это, без фигурных скобок

if(something == true) DoSomething(); 
0
ответ дан 4 December 2019 в 05:53
поделиться

Я просто столкнулся с этой проблемой вчера при работе над кодом, написанным кем-то еще. Исходный код был:

if (something == true) 
    DoSomething();

и я хотел печать отладки перед вызовом DoSomething(). Что я сделал бы инстинктивно

if (something == true) 
    print("debug message");
    DoSomething();

Но это сделало бы if подайте заявку только к сообщению отладки, в то время как DoSomething() был бы назван безусловно. Вот почему у меня были бы фигурные скобки, так, чтобы инстинктивное редактирование закончилось как:

if (something == true) {
    print("debug message");
    DoSomething();
}
2
ответ дан 4 December 2019 в 05:53
поделиться

Я рекомендовал бы действительно любить Stephen, и Nicholas Mancuso сказал.

Использование:

if(something) {   DoSomething(); }

С или без скобки. Как только Вы начинаете использовать странную версию того, "если" оператор, Вы будете, запуская наблюдение Ваших коллег, смотрящих на Ваш код странным способом.

Я обычно использую один лайнер для проверки.

Пример:

if( param1 == null ) throw new ArgumentNullException("param1");
0
ответ дан 4 December 2019 в 05:53
поделиться

Пробел в форме новых строк, добавления отступа, интервала, выравнивание и так далее является важным аспектом типографии и широко используется для улучшения удобочитаемости текста в статьях, книгах и веб-сайтах. Не уверенный, почему это не применит то же к удобочитаемости кода.

Однако нет ничего неправильно с Вами и Вашей командой, использующей Ваш стиль. Пока все Вы договариваются о нем.

1
ответ дан 4 December 2019 в 05:53
поделиться

Я не вижу почему нет. Я также использовал его для коротких функций.

На наступательной передней стороне стиля это намного лучше, чем отвратительное:

  if (something== true)   {
      DoSomething();
  }

Но, в то время как мы находимся по теме стиля, это

  if (something)

и

  if (!something)

Никогда

  if (something== true)  

или

  if (something== false) 
3
ответ дан 4 December 2019 в 05:53
поделиться

Если Вы работаете в команде, Вы должны придумать стандарт.

Лично мне нравится делать:

if(foo)
    DoSomething();

или

if(foo) DoSomething();

Я не вижу проблемы с не ношением брекетов. Причиной, которую люди цитируют, тот, которого Вы упоминаете о добавлении другого оператора на строке ниже, является та, в которой я никогда не работал к.

6
ответ дан 4 December 2019 в 05:53
поделиться

Лично, мне нравится, когда все мои блоки имеют тот же шаблон. Я всегда использую фигурные скобки для IFS, и они всегда запускают новую строку. Мне нравится идиома за, автоматически определяют общественные собственности помещения {добираются; набор;} на той же строке. Я просто чувствую, что наличие всех блоков запускается с фигурной скобки на своей собственной строке, улучшает удобочитаемость. Как другие указали, это также делает это более ясным в отладчике, если Вы переступаете через строки.

Если Вы не соглашаетесь, то это в порядке также, но поскольку другие сказали, последовательны. С этой целью Вы могли бы хотеть совместно использовать "настройки" форматирования кода между Вами и Вашими коллегами так, чтобы автоматическое форматирование сделало все последовательным для всех.

Я сделал бы:

if (something)
{
   DoSomething();
}

и

public string MyProperty { get; set; }
5
ответ дан 4 December 2019 в 05:53
поделиться

Я склонен помещать вводные фигурные скобки на их собственную строку как это:

if (condition)
{
   statement;
   statement;
}

Так наблюдение чего-то как:

if (condition)
   statement;
   statement;

выделяется как неправильно сразу же. Если у меня только есть один оператор, я просто оставляю его как

if (condition)
   statement;

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

При помещении оператора на ту же строку, поскольку условие является дурной привычкой войти, с тех пор когда Вы отлаживаете, большинство отладчиков считает все это как одну строку. (Я понимаю это в C# дело обстоит не так).

9
ответ дан 4 December 2019 в 05:53
поделиться

Многие люди предложили поместить обоих на одну строку. Это может увеличить удобочитаемость, но за счет уменьшенной способности отладки, по-моему. Я ступил через большое количество кода, записанного этот путь, и более трудно отладить из-за этого.

Некоторые отладчики и IDE смогли переступать через обе части одной строки if- оператор и ясно показывает, может ли условие, оцененное верный или не, но много других отладчиков, рассматривать его как одну строку, мешающую определить ли тело if- оператор назвали.

Например, отладчик VS2008 для кода C++ переступит через это как через одну строку, мешающую определить, позвонили ли Foo ().

if (a==b) { Foo(); }
6
ответ дан 4 December 2019 в 05:53
поделиться

Вместо:

if(something == true)
{   DoSomething(); }

Сделайте это:

if(something == true) {   DoSomething(); }
10
ответ дан 4 December 2019 в 05:53
поделиться

Нет никакой проблемы там... на самом деле, Visual Studio не поместит тот код своей собственной строки, при попытке автоотформатировать его. Так, если это более читаемо Вам... Вы хороши.

0
ответ дан 4 December 2019 в 05:53
поделиться

Я предпочитаю ужасающе невыразимый синтаксис:

if (true == something) {
    doSomething1();
}

Да, именно так это сделали K&R ... и да, я возвращаюсь так далеко ... и да, этого достаточно причина для меня. Это означает, что у меня есть общий синтаксис, даже когда я делаю что-то вроде этого:

if (-1 == doSomething()) {
   doSomethingElse();
}

Я вставляю фигурные скобки независимо от количества строк кода, которые они содержат. Меня укусила «необходимость добавить строку тестового кода», и я слишком много раз упускал из виду отсутствие фигурных скобок.

Я всегда сравниваю с буквальным слева. Это позволяет избежать ошибки «тестирования присваивания» (например, if (something = true) {...}).

Нет большей опасности для переносимости "(something == true)", чем для перегруженного набора значений, которые означают "истина" и "ложь" в логическом сравнении - но это иная опасность. Вы пишете на языке, который считает «пустой» (и / или ноль, и / или NULL, и / или пробел) «истинным» или «ложным»? Я предпочитаю соглашение, безопасное для всех случаев ... потому что я ленив.

0
ответ дан 4 December 2019 в 05:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: