2015-05-01 3 views
0

У меня есть этот вопрос с индикаторной бумаги, что им возникли проблемы с:Integer метод проверки

Написать тело кода для метода

public static int enter_No_Of_Items(int min, int max) 

, которая позволит пользователю ввести значение для количества купленных предметов.

Значение должно быть подтверждено в диапазоне от min до max. Ваш ответ должен включать объявление данных, операторы подсказок и ввода, проверку диапазона, контроль сообщений об ошибках.

Это может быть просто меня, но вопрос кажется глупым, потому что я думаю, что проверка будет возвращать истинным или ложным, а не целое число, если кто-то может помочь мне ответить на этот вопрос или объяснить, что именно этот вопрос хочет, что бы здорово , любая помощь приветствуется.

+1

Только автор вопроса может ответить на то, что ожидается, однако в C-дни (до того, как был тип булевых данных) 0 использовалось для 'false', а для« true » –

+5

было использовано что-то ненулевое, пожалуйста, сообщите я, ваш инструктор, не учит вас создавать имена методов, используя символы подчеркивания между словами –

+3

@RufusL: Действительно. Или иначе мы научим его урок;) –

ответ

2

Вы правы. Обычно валидация:

  • возвращает bool, указывая на то, что это хорошо или неправильно;
  • не имеет возвращаемого значения и выбрасывает исключение, если оно недействительно.

Однако в этом случае вас попросят «попросить пользователя» ввести значение. Объем вашего метода - это не только проверка, но и получение ввода. Вероятно, это ожидаемое значение возврата.

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

+0

, так что если вход пользователя находится между min и max, возвращается значение? –

+3

Чтобы продлить это действие (поскольку оно находится на месте), поскольку назначение не указывает использование только одного метода, почему бы не извлечь свой метод проверки (который может возвращать логический) в другой метод и вызвать его из 'No_Of_Items'? –

+1

@AdamHiggins действительно –

0

У меня был пойти в письменной форме метод, и это лучшее, что я мог придумать:

public static int enter_No_Of_Items(int min, int max) 
    { 
     string input = "input"; 
     bool ok = false; 
     while (ok == false) 
     { 
      Console.WriteLine("Enter a number between {0} and {1}.", min, max); 
      input = Console.ReadLine(); 

      if ((int.Parse(input) >= min) && (int.Parse(input) <= max)) 
      { 
       Console.WriteLine("Valid number."); 
       break; 
      } 

      Console.WriteLine("Invalid number."); 
     } 

     return int.Parse(input); 
    } 

    static void Main(string[] args) 
    { 
     int randomA = 5; 
     int randomB = 9; 

     int itemCount = enter_No_Of_Items(randomA, randomB); 
     Console.ReadLine(); 
    } 

Если я мог бы получить обратную связь о том, как улучшить его, это было бы здорово. Благодарю.

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