Выражение внутри оператора switch case

Просто добавьте что-то примечательное здесь.


myQueue.hpp:

template <class T> 
class QueueA {
    int size;
    ...
public:
    template <class T> T dequeue() {
       // implementation here
    }

    bool isEmpty();

    ...
}    

myQueue можно определить методы шаблонного класса, которые просто прекрасны в файле реализации. cpp:

// implementation of regular methods goes like this:
template <class T> bool QueueA<T>::isEmpty() {
    return this->size == 0;
}


main()
{
    QueueA<char> Q;

    ...
}
36
задан Marko 12 August 2010 в 00:14
поделиться

3 ответа

Вы всегда можете сделать

switch (true) {
  case (amount >= 7500 && amount < 10000):
    //code
    break;
  case (amount >= 10000 && amount < 15000):
    //code
    break;

  //etc...

Это работает, потому что true является константой, поэтому будет выполнен код под первым оператором case с выражением, которое оценивается как true.

Я думаю, это довольно "сложно", но я не вижу ничего плохого в его использовании. Простой оператор if / else , вероятно, будет более кратким, и вам не придется беспокоиться о случайном провале. Но это все равно.

113
ответ дан 27 November 2019 в 05:10
поделиться

Во-первых, переключатель работает не так. Вы должны указать константы для каждого case , и эти константы будут сравниваться с выражением в скобках (в вашем случае amount ). Так работает переключатель , точка.

Во-вторых, переключение выполняется не быстрее, чем несколько if

. И, в-третьих, вам не стоит особо беспокоиться о незначительной оптимизации производительности, когда вы имеете дело с javascript.

3
ответ дан 27 November 2019 в 05:10
поделиться

That is not how a switch block works. The case is used to hold a single value that if they are equal to the value on the switch line. if-else statements will serve you well.

Here is some information about the switch block.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch

10
ответ дан 27 November 2019 в 05:10
поделиться
Другие вопросы по тегам:

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