Вот пример моего кода. Мне нужно последнее if
ничего не делать, иначе что-нибудь сделать.Как вы делаете «если» stament «ничего не делать» в C#?
if (daPilot.Gas > 0)
;
else
daPilot.failMessage3();
Вот пример моего кода. Мне нужно последнее if
ничего не делать, иначе что-нибудь сделать.Как вы делаете «если» stament «ничего не делать» в C#?
if (daPilot.Gas > 0)
;
else
daPilot.failMessage3();
передачи заднего хода if
:
if (daPilot.Gas <= 0) daPilot.failMessage3();
Просто инвертировать условие if
и объявить только true
часть:
if (daPilot.Gas <= 0)
daPilot.failMessage3();
Во всяком случае, вы всегда можете объявить пустое тело при необходимости: { }
.
Например:
while (condition)
{
}
Вы можете инвертировать if
, попробуйте следующее:
if (daPilot.Gas <= 0)
{
daPilot.failMessage3();
}
, если вы действительно хотите, чтобы ничего не делать
{
if (daPilot.Gas > 0)
{
}
else
{
daPilot.failMessage3();
}
}
двумя способами:
Пустые curlys:
if (condition)
{
}
else
{
method();
}
Осознайте, что вы можете просто инвертировать условное:
if (!condition)
method();
Вы уже сделали это. Поздравления.
Конечно, гораздо менее запутанный дизайн - это просто НЕ условие, а затем if
без else
.
У него есть дополнительный полутень в заявлении, из-за которого он ошибется ... он еще этого не сделал. – DotN3TDev
@ DotN3TDev У него нет дополнительной точки с запятой; у него есть ровно одна * необходимая * точка с запятой, что приводит к тому, что его код не имеет ошибок и делает то, что он просит. Он уже это сделал. 'if' ожидает, что за ним последует только один оператор'; '- это оператор, и он ничего не делает. – Servy
справедливо, они не получат ошибку от ';' ... Я сомневаюсь, что они знали, что ';' является действительным заявлением и помещает его там, потому что они были в недоумении, зная, что делать ... это не лучший способ объяснить этот ответ, и есть лучшие ответы, которые были даны, которые заслуживают голосов. Я не понимаю, почему ваш ответ получил 11 голосов, где другие ответы, которые намного полезнее, получили один или ничего ... – DotN3TDev
if (daPilot.Gas > 0)
{
// nothing
}
else
{
daPilot.failMessage3();
}
Или еще проще,
if (daPilot.Gas <= 0)
{
daPilot.failMessage3();
}
Инвертирование условия имеет больше смысла, но если нужно ничего не блокировать, то они должны добавить комментарий к этому эффекту (как вы показали). –
Обратите внимание, что если «Газ» является одним/двумя, ваш код не будет эквивалентен коду OP. Я считаю довольно распространенным писать что-то вроде 'if (! (X> y))' плюс комментарий, чтобы люди не ошибочно упрощали его до 'if (x <= y)'. – CodesInChaos
Там нет смысла класть состояние ничего не делать. Вы должны сделать это так.
if (daPilot.Gas <= 0)
daPilot.failMessage3();
Давайте использовать оператор '!'
как:
if (!(daPilot.Gas > 0))
daPilot.failMessage3();
или с дополнительной переменной:
var isGasGreaterToZero = daPilot.Gas > 0; /*true or false*/
if(!isGasGreaterToZero)
daPilot.failMessage3();
В обоих случаях, если daPilot.Gas
больше нуля (0) ничего не случится!
Гораздо проще (и гораздо более уместно) сделать ветку 'else' заявления ничего не делать просто, опуская ее. – dasblinkenlight
благодарит всех за большую помощь – missahippy