Здравствуйте, можно ли как то задать правила на то, что в скобках:
Или придется таким велосипедом делать:
Но по второму варианту у меня проблема в математике вылазит
Вроде проблем быть не должно
if(MuNumb>0) { switch(MuNumb) { case 1: A++; break; case 2: A+=2; break; default: A+=3; break; } } else { switch(MuNumb) { case -1: B++; break; case -2: B+=2; break; default: B+=3; break; } }
Как вариант, можно тернарной записью записать.
Но свич в данном примере теоретически мне кажется, должен быть быстрее.
Если скорость не критична, то пара строк тернарной записи, рациональней.
res1 и res2 можно опустить, так как А и В выполняют роль сумматора.
int res1 = (MuNumb == 1) ? A++ : (MuNumb == 2) ? A+=2 : (MuNumb > 2) ? A+=3 : 0; int res2 = (MuNumb == -1) ? B++ : (MuNumb == -2) ? B+=2 : (MuNumb < -2) ? B+=3 : 0;
A+=MathMin(MathAbs(MuNumb),3);
Как-то так можно.
switch(MuNumb) { case 1: A++; break; case 2: A = +2; break; case -1: B++; break; case -2: B = +2; break; default: if(MuNumb > 2) A = +3; else if(MuNumb < -2) B = +3; }
Не заметил сразу, что в старт топе +2 +3 присваиваются, а не суммируются ))
Возможно это и есть ошибка, что не получается по математике.
Как-то так можно.
Круто.
Не заметил сразу, что в старт топе +2 +3 присваиваются, а не суммируются ))
Возможно это и есть ошибка, что не получается по математике.
В этом очевидно и ошибка, только я смотрю операции присвоения и не вижу тут ее. Мне нужна была сумма.
Есть еще один вопрос (хотя я вроде как вычитал что НЕТ)
Можно ли как то загнать вычисление в скобки?
switch( MuNumb1+MuNumb2 ){ case 1: A++; break; case 2: A += 2; break; case -1: B++; break; case -2: B += 2; break; }
Из-за этого приходится вводит лишнюю переменную в которую ответ заносится отдельно.
Дело в том что у меня таких свитчей будет больше 20
В этом очевидно и ошибка, только я смотрю операции присвоения и не вижу тут ее. Мне нужна была сумма.
В том и дело, что это не сумма
A=+2
По последнему примеру, кажется вы поняли это, и сумматор записали верно.
Есть еще один вопрос (хотя я вроде как вычитал что НЕТ)
Можно ли как то загнать вычисление в скобки?
Из-за этого приходится вводит лишнюю переменную в которую ответ заносится отдельно.
Дело в том что у меня таких свитчей будет больше 20
Если
MuNumb1+MuNumb2
справедливо для всех >20 свитчей, то лучше завести одну переменную с результатом.
Тем самым избежать избыточные повторяющиеся операции сложения.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Здравствуйте, можно ли как то задать правила на то, что в скобках:
Или придется таким велосипедом делать:
Но по второму варианту у меня проблема в математике вылазит