Как консолидировать дела в выписке из списка?
В программе, над которой я сейчас работаю, я использую оператор switch во многих случаях, дающих тот же результат. Соответствующий бит моего текущего кода выглядит так:
int[] vinArray = new int[17];
for(int x=0;x<17;x++)
{
v = vinString.substring(x,x+1);
switch(v)
{
case "A": vinArray[x]=1; break;
case "B": vinArray[x]=1; break;
case "C": vinArray[x]=1; break;
case "D": vinArray[x]=1; break;
case "E": vinArray[x]=1; break;
case "F": vinArray[x]=1; break;
case "G": vinArray[x]=1; break;
case "H": vinArray[x]=1; break;
case "J": vinArray[x]=2; break;
case "K": vinArray[x]=2; break;
case "L": vinArray[x]=2; break;
case "M": vinArray[x]=2; break;
case "N": vinArray[x]=2; break;
}
}
Мне было интересно, если их способ консолидации дел, которые выполняют действие, является следующим образом (псевдо-код):
case "A", "B", "C", "D", "E", "F", "G", "H": vinArray[x]=1; break;
3 ответа
Решение
Просто пропустите разрыв между делами, чтобы провалиться:
case "A":
case "B":
case "C": // etc
vinArray[x] = 1;
break;
case "J":
case "K": // etc
vinArray[x] = 2;
break;
Да, ты можешь. Я уверен, что другие работают над этим, но в этом случае я думаю, что лучшее решение будет
char v = vinString.charAt(x);
if (v >= 'A' && v <= 'H') {
vinArray[x]=1;
} else if (v >= 'J' && v <= 'N') {
vinArray[x]=2;
}
Да, это можно сделать так:
case "A":
case "B":
case "C":
case "D":
vinArray[x]=1;
break;
Кроме того, будьте осторожны, вам не хватает некоторых; в ваших высказываниях.