Вложенная логика уровня - PullRequest
0 голосов
/ 17 мая 2019

Я должен написать логику для проблемы и использовать ее на целевой странице. Я не могу написать это.

1 - IT 1

2 - IT 1

3 - IT 1

4 - IT 2

5 - IT 2

6 - IT 2

7 - IT 2

8 - IT 3

9 - IT 4

Постановка проблемы: - Пока кто-то выбирает 1, 2 или 3, предлагается только IT 1
-Когда кто-то выбирает 4 или 5 или 6 или 7 и что-либо со значением 3 или ниже, предлагается IT 2
-Когда кто-то выберет 8 или или 8 + что-нибудь ниже 8, тогда предлагается IT 3
-Когда кто-то выбирает 9 и что-либо со значением ниже 9, то предлагается IT 4.

Я использовал условие if, но кажется, что всякий раз, когда IT2 удовлетворяется, IT3 также выполняется. Как написать логику?

1 Ответ

0 голосов
/ 17 мая 2019

https://jsfiddle.net/bhanusingh/7fxet35h/9/

Не вкладывайте свои if.Просто напишите четыре if, как в описании проблемы, и сделайте вспомогательную функцию, чтобы ее было легче читать.

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

if (isAnySelected([1,2,3]) )
   return IT1
if (isAnySelected([4,5,6,7]) AND isAnySelected([1,2,3]) )
  return IT2
if (isAnySelected([8]) AND NOT isAnySelected([9])) 
   return IT3
if (isAnySelected([9]) AND isAnySelected([1,2,3,4,5,6,7,8]))
  return IT4

Обратите внимание, что я добавил правило "not 9" в # 3, чтобы выбрать 8 и 9производит IT4

Решено на Reddit: https://www.reddit.com/r/learnprogramming/comments/bpukvf/i_got_a_very_complex_problem_for_me_i_can_only/enxst62?utm_source=share&utm_medium=web2x

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