Проверка входных данных в функции в java, чтобы избежать дублирования данных, кроме отсутствия записи, по умолчанию 0 (без базы данных) - PullRequest
0 голосов
/ 07 августа 2020

У меня есть три целочисленные переменные, каждая из которых имеет значение по умолчанию 0. Я хочу обновить каждое значение до значения, уникального для другого. В случае, если я попытаюсь обновить две переменные до одного и того же значения, проверка должна быть разрешена. Я застрял на написании проверочной части программы. Кто-нибудь может меня направить?

 public static int ValidateChoice(int choice, int firstChoice, int secondChoice, int thirdChoice, int totalCredit) {

    // TO DO - Add Code to:
    // Validate user menu selection (the int choice method argument)
    /* against the given registration business rules below:
       No registration of other courses not displayed by the program
       No registration more than once for the same course
       No registration for more than 9 credit hours (e.g. no more than 3 
       courses)
      */    

    //by fact the choice are limited to seven option 
    //anything beyond seven or below 1 is considered invalid
    if(choice > 8 || choice < 0){
        return -1;
        
    }

    //my problem is from here

    ///No two courses chosen should be the same 
    //therefore blacklisting the inappropriate submission of course is  captured by the condition in the if
    // initial state thirdChoice=0 secondChoice=0 firstChoice=0
    else if((firstChoice==secondChoice || firstChoice== thirdChoice || secondChoice==thirdChoice)){
        
        return -2;
    }

   // upto here

    //the total credit for the course is upto 9 hours
    else if(totalCredit > 9) {
        return -3;
    }
    else {
       return 0;  
    }
}

Ответы [ 2 ]

0 голосов
/ 07 августа 2020

Используйте это:

boolean isInvalid  = firstChoice!=0 ? 
(firstChoice == secondChoice ||firstChoice == thirdChoice):
(secondChoice!=0 && secondChoice==thirdChoice);

if(isInvalid) {
  return -2;
}

Другая ошибка в вашем коде, проверка выбора должна включать 8 и 0

if(choice >= 8 || choice =< 0){
    return -1;
}
0 голосов
/ 07 августа 2020

Так как не очень понятно, что делать со значениями по умолчанию, попробую выложить 2 варианта. Я предполагаю, что return 0 - это возвращаемое значение, прошедшее проверку.

Если требуется просто отклонить проверку, если 2 значения равны, этого должно быть достаточно, чтобы условие

 if(  firstChoice==secondChoice || 
              firstChoice== thirdChoice || secondChoice==thirdChoice){
              
              return -2;
 }
 return 0;

независимо по умолчанию.

Если вместо этого вы все равно должны проверить все поля со значением 0 и проверить на равенство поля, отличные от 0, условие может стать следующим:

 if(  (firstChoice!=0 && firstChoice==secondChoice) || 
              (firstChoice!=0 && firstChoice== thirdChoice) || (secondChoice !=0 && secondChoice==thirdChoice)){
              
              return -2;
 }
 return 0;

таким образом поля с значение 0 подтверждено

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...