Автор | помощь по с++ |
для Йа_ельф:
то есть в короткой форме просто нужно добавлять else? |
для Humanoid:
короткая форма выполнения проги, ибо в твоем случае будет выполнение 3-х операторов условия каждый запуск. |
для Йа_ельф:
то есть в короткой форме просто нужно добавлять else?
нет, это полная форма, верная полная форма
короткая форма что то типа такого
X<A? X+=A : X-=A; |
Если использовать else будет быстрее выполняться, на счёт избавления от лишних проверок. Но короче от этого точно не станет.
if ( x= 5)
Это условие выполняется всегда, так что его вообще можно одно оставить.
Короткая форма записи условий - оператор ?. |
то есть в короткой форме просто нужно добавлять else?
Запомни, пригодиться: каждый if всегда закрывается else, в твоем варианте у тебя 3 условия проверялись при каждом варианте, в моем проверяется минимум одно, максимум 3, зависит от варианта введенного. |
И да, в моем примере, ибо скопировал твой тоже х=5, поменяй на х==5 |
чет программисты нынче не ахти) |
x<1? y=1/x + 4 - 0.65 * x + 8 :
{ 1!=x<5? y=...:}
Тогда скорее так
y=1/x+4- (x<1?(0.65 * x + 8):(1!=x<5?(atan(x) + (x + 6,1) + e+x):
и так далее, главное правильно скобки расставить |
чет программисты нынче не ахти)
От дня программиста не отошли ещё)) |
для Янеч о_О:
Да я ни в жись не юзал краткую запись условия |
для Akron:
черт а так намного логичнее выглядит. Это все потому, что я такой способ видел только в примерах) |
какая гадость эта краткая форма ... |
какая гадость эта краткая форма ...
Чё сразу гадость? Удобная вещь, просто не стоит тыкать её повсюду. Например:
String s = "12345" + (t > 0 "6789" : "4321");
выглядит гораздо симпотичнее, чем:
s = "12345"
if (t > 0) s+= "6789";
else s+= "4321";
или
if (t > 0) s+= "123456789";
else s+= "123454321";
Особенно, когда таких вставочек в строке хотя бы штук 5. |
черт а так намного логичнее выглядит
Короче явно, а по наглядности на порядок хуже. Честно говоря, я бы за такую запись бил бы по рукам, но раз тс-у надо.. |
для Akron:
Да, имхо для чтения не удобно использовать такое ветвление с краткой записью. А для примера в 33, конечно да, удобно. |
для Humanoid:
Вот краткая форма твоего алгоритма расчета y, вставь это вместо своих if ... else и проверь на всякий расчетами в уме, написал по памяти, а си давно не трогал:
(x < 1) ? y = 1/x + 4 - 0.65 * x + 8 : ((1!=x) and (x < 5) ? y = 1./x + 4 - atan(x) + (x + 6,1) + e+x : y = 1/x + 4 - sqrt (1.+ sqrt(x))); |
для Humanoid:
И мне не совсем понятно, зачем ты в (x + 6,1) запятую поставил, а не точку между 6 и 1. Складываться же тогда с иксом будет только единица в этом случае. |
для MaprapuH:
y = 1/x + 4 - повторяется в каждом случае, так что этот кусок можно вынести за условие, сократив ещё больше |
(1 != x < 5) -> (!(x < 5)) -> (x >= 5) |