Android switch case
Автор Muriam задал вопрос в разделе Другие языки и технологии
C++. В операторе switch нельзя разве использовать case x? а x пробежать в цикле for? и получил лучший ответ
Ответ от Kaiu[гуру]
все ветвления приводят к сбросу конвейера процессора. - ну да, надо в языке учитывать реализацию процессора? Все это очень спорно и длина конвейера не такая малая, чтобы приводить к сбросу на таких малых прыжках, так что прыжок прыжку рознь.
Ну а кол. операций от такого улучшения поглядите сами
Ну а "case 1: case 2 ..case n" придуман именно для того, чтобы сразу прыгнуть на нужный кусок а не делать 10000 if пока доберешься до нужного 9999. Ну и иногда если у меня и есть несколько if(x) то в начале пишу такой x который в данном условие более вероятный по условию, чтобы не происходило лишних сравнений, то же самое как в x1 x2 x3 .. xn размещаешь x1 который более часто и вероятно даст true
Нахрена тогда вообще нужен case?case нужен тогда и только тогда, когда выражение которое должно быть выполнено на каждый n существенно различается.Если его можно представить однозначно некой универсальной формулой для любого n, то тут не нужен ни case, ни цикл.Кроме того не забываем, что все ветвления приводят к сбросу конвейера процессора. Поэтому нужно избегать их как только это возможно.Например вместо if (x==0) y=1 else y=2 следует писать y=2-(x==0).
А зачем это нужно?
Нельзя. В case должны быть константы. Если у тебя диапазоны значений, лучше использовать несколько if.
Проблема с Android
1Mobile Market - Альтернативный каталог приложений
Amazon Appstore - Новый маркет от
подробнее...
android market. Какие альтернативы есть android market и ссылки пожалуйста.
уже Google Play !
Mobile Market - Альтернативный каталог приложений
Amazon Appstore -
подробнее...
Подскажите игры для двоих на PS4
Название 1.Кол-во игроков 2.Один экран или сплит
Amplitude (4) [1]
Angry Birds Star Wars
подробнее...