2015-08-28 3 views
0

Я все еще изучаю java, но программа, которую я хочу сделать, - это селектор чисел, основанный на моих собственных правилах. Проще говоря, у вас есть 1-10, и вы выбираете число, основанное на выбранном вами количестве, которое определяет, какие другие номера вы должны выбрать.Просто любопытный лучший способ сделать эту программу Java

Например, цифры будут 1-10. если я выберу 1, он отобразит другие числа, которые я могу выбрать (2,5,7,8), а затем выбрав другой, он будет ограничивать мои номера до 5, 7 (удаление 8, потому что я выбрал 2).

Мне было просто интересно, был ли какой-нибудь лучший способ сделать это, кроме множества операторов if/else, со всеми числами, которые я могу выбрать, если я выберу 1. Создание массива всех возможных чисел, вероятно, будет хорошим, но как насчет чисел, удаленных, поскольку они более случайны?

+3

Как выбрать '1' из набора' (1, 2, 3, ..., 10) 'сгенерировать набор' (2, 5, 7, 8) '? –

+1

Звучит как домашнее задание. Можете ли вы опубликовать то, что вы пробовали? Можете ли вы использовать только массивы? Каковы требования к программе? –

ответ

0

Вы можете использовать заявление switch. Он предоставит вам различные варианты, не используя операторы if, и это более понятно.

Например, если у вас есть number переменных (и в том случае, когда вы вводите номер по Scanner):

int number = scanner.nextInt(); 

И у вас есть switch подобного заявления:

switch (number) { 
      case 1: 
        System.out.println("You choose option 1"); 
        //Code when the user input it's 1 
        break; 
      case 2: 
        System.out.println("You choose option 2"); 
        //Code when the user input it's 2 
        break; 
      case 3: 
        System.out.println("You choose option 3"); 
        //Code when the user input it's 3 
        break; 
      case 4: 
        System.out.println("You choose option 4"); 
        //Code when the user input it's 4 
        break; 
      case 5: 
        System.out.println("You choose option 5"); 
        //Code when the user input it's 5 
        break; 
} 

Я ожидаю, что это будет полезно для вас!

0

Как это работает для вас? (Предоставляется это псевдо-код)

Set original = //Fill with {1,2,...10} 
Set selectedSoFar = new HashSet(); 
while(original.isEmpty() ==false){ 
    int selectedNow = selectOne(original) 
    selectedSoFar.add(selectedNow) 
    original.remove(selectedNow) 
} 
private int selectOne (Set selection){ 
    int selected = -1 
    while (!selection.contains(selected)){ 
    // Print the selection. 
    //Ask the user to type one of the number 
    //assign it to "selected" 
    } 
    return selected 
} 

Очевидно, что вы можете заполнить оставшийся код для заполнения оригинального набора, а также каким-то образом читает выбор в «SelectOne» Надеюсь, что это помогает!

------- Обновление -------

К сожалению, я привык к неизменным коллекциям Scala, так что я должен был изменить свой оригинальный ответ на SUITE Java.

Смежные вопросы