Вопрос по java, switch-statement, boolean, case – Как сделать случай с несколькими условиями?

22

В 1 месяце опыта яЯ имел с любым языком программирования, ямы предположили, чтоswitch case условия будут принимать что-либо в круглых скобках как логическую проверку thingamajig, то есть эти:

|| && < >

Знаешь что я имею ввиду?

что-то вроде

char someChar = 'w';
switch (someChar) {
case ('W' ||'w'):
    System.out.println ("W or w");
}

К сожалению, неКажется, так не работает. Я могу'не должно быть логической проверки в случае переключателя.

Есть ли способ обойти это?

Кстати, очень жаль, если язвучит странно. Я неЯ пока не знаю названий для всего на этом языке: X

Любые ответы приветствуются

Операторы. Понял. И я нене знаю, смотрел ли кто-нибудь на метки, таким образом "Тиз Ява ", Этого фрагмента было достаточно, чтобы показать то, что я хотел спросить, не так ли? Спасибо за исправления, кстати :) AfroMan
Если ответ правильный, выберите его как принятый Roger
@KenWhite Во-первых, спасибо, что рассказали мне больше о сайте. Во-вторых, я просмотрел много хороших сайтов, включая сайт Java. Имейте в виду, яя еще не испытал и не могЯ не знаю, как это могло бы помочь мне. Это'наверное там где-то, яя уверен. Я ненавижу беспокоить других за их драгоценное время, чтобы они могли помочь мне, но я нене могу найти хороший и достаточно простой ответ, который удовлетворил бы проблему для меня. Я'Я задал один вопрос раньше, и я держал его настолько тщательно, насколько это возможно. Просто на этот раз я спешил, извините за это: P AfroMan
логическая проверка штуковин называются "операторы», а также "это Ява " разъясняетсяjava тег, который вы добавили. Кроме того, весь размещенный вами фрагмент кода недействителен (Java нене иметьcase), а также{ а также} неуместны). Это'лучше поститьреальный код вы'возникли проблемы с; в большинстве случаев сам акт вымышленного кода либо скрывает проблему, либо добавляет дополнительные проблемы, которыет в оригинале. Возможно, поиск Google поможет - я пыталсяcase statement Java ипервый результат было полезно. Ken White
Просто к вашему сведению. Во-первых, когда вы публикуете комментарий, адресованный кому-то, обращайтесь к нему с помощью@username так они это видят. Вы получаете уведомление (этоВаш вопрос), но мы нет. Во-вторых, теги здесь действительно важны. Они классифицируют вопросы по категориям так, чтобы онилегко найти люди, которые ищут информацию, а также для поиска помощи / ответов. А что касается фрагмента, прочитайте, пожалуйста, то, что я написал снова - тот факт, что он помог вамэтот раз Безразлично»Я имею в виду, что это произойдет в будущем, и совет, который я дал вам, может быть очень полезным в какой-то момент. :-) И то же самое относится и к поиску Google. Ken White

Ваш Ответ

5   ответов
0

Для альтернативы для переключения оператора (кратные условия), Я думаю, что лучшим решением будет использование enum. Например: рассмотрим случай ниже:

    public enum EnumExample {

  OPTION1{

    public double execute() {
      Log.info(CLASS_NAME, "execute", "The is the first option.");
      return void;
    }

  },
  OPTION2{

    public double execute() {
      Log.info(CLASS_NAME, "execute", "The is the second option.");
      return void;
    }

  },
  OPTION3{

    public double execute() {
      Log.info(CLASS_NAME, "execute", "The is the third option.");
      return void;

  };

  public static final String CLASS_NAME = Indicator.class.getName();

  public abstract void execute();

}

Вышеуказанный enum можно использовать следующим образом:

EnumExample.OPTION1.execute();

Надеюсь, это поможет вам, ребята.

47

Вы можете достичь ИЛИ для таких случаев:

switch (someChsr) {
case 'w':
case 'W':
    // some code for 'w' or 'W'
    break;
case 'x': // etc
}

Случаи похожи на "идти к" и несколько gotos могут совместно использовать одну и ту же строку, чтобы начать выполнение.

Вот это да. Быстрый ответ. Работает как шарм. Спасибо! AfroMan
Самый умный взлом, который я когда-либо видел здесь. Должен +1. И еще один парень спрашивает здесь, вДругой вопрос и люди говорят этоневозможно. Я цитирую ваш ответ там. WesternGun
6

Ты можешь сделать -

switch(c) {
    case 'W':
    case 'w': //your code which will satisfy both cases
              break;

    // ....
}
Спасибо за Ваш ответ! AfroMan
3

перерыв;" заявление, чтобы указать, где выполнение должно быть прекращено. Если вы пропустите "перерыв;", тогда исполнение будет продолжено. Вы можете использовать это для поддержки нескольких случаев, которые должны обрабатываться одинаково:

char someChar = 'w';
{
case 'W':
  // no break here
case 'w': 
  System.out.println ("W or w");
  break;
}
Да, я заметил, что перерыв продолжался в следующем деле. Умный способ позаботиться об этом. Спасибо! AfroMan
1

о выражения. Выражение задается в скобках переключателя и может быть байтовым, коротким, типом данных и типом данных int.

Тело оператора switch называется блоком switch. Оператор в блоке switch может быть помечен одной или несколькими метками case или default. Оператор switch оценивает свое выражение, а затем выполняет все операторы, которые следуют за соответствующей меткой регистра.

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html

Didn»На самом деле я не могу ответить на этот вопрос (для меня), но теперь я знаю, как далеко я могу пойти с типами переменных в случае переключения AfroMan
Никаких проб, также обратите внимание, что у переключателей есть несколько тонкостей, которые могут быть потенциальными ошибками - например,default дело в конце, ипроваливается один случай в другой, еслиbreak или жеreturn ISN»т использовал. Некоторые языки, такие как Python, полностью исключили их.stackoverflow.com/questions/374239/... Aram Kocharyan

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