Извините за заголовок, я не знал, как его назвать.
Моя проблема в том, что у меня есть оператор switch, который случайным образом выбирает тип вопроса следующим образом:
questionType[count] = rad.nextInt(4);
switch (questionType[count])
{
case 0:
questionArray[count] = new Times(count + 1);
((Times) questionArray[count]).askQuestion(question);
break;
case 1:
questionArray[count] = new Add(count + 1);
((Add) questionArray[count]).askQuestion(question);
break;
case 2:
questionArray[count] = new Minus(count + 1);
((Minus) questionArray[count]).askQuestion(question);
break;
case 3:
questionArray[count] = new Divide(count + 1);
((Divide) questionArray[count]).askQuestion(question);
break;
}
Для этого случайным образом выберите вопрос и затем добавьте его к следующему массиву, вот версия псевдокода:
questionType = random(4)
case questionType == 0
do something
break
case questionType == 1
do something
break
case questionType == 2
do something
break
case questionType == 3
do something
break;
Теперь давайте скажем, что мне не нужны ни 1, ни 2, каксделать это?Я думал что-то вроде этого:
START:
questionType = random(4)
case questionType == 0
if(0 enabled)
{
do something
break
}
case questionType == 1
if(1 enabled)
{
do something
break
}
case questionType == 2
if(2 enabled)
{
do something
break
}
case questionType == 3
if(3 enabled)
{
do something
break;
}
else goto start
Но это очень неэффективный код и использует goto, каковы альтернативы?