Я хочу решить этот запрос с помощью программы - PullRequest
0 голосов
/ 11 октября 2018

Может ли кто-нибудь подсказать мне, как правильно указать это в выражении if-else.Рассмотрим следующий оператор if, где doesSignificantWork, makesBreakthrough и nobelPrizeCandidate - все булевы переменные:

if (doesSignificantWork) {
    if (makesBreakthrough)
        nobelPrizeCandidate = true;
    else
        nobelPrizeCandidate = false;
}
else if (!doesSignificantWork)
    nobelPrizeCandidate = false;

Сначала напишите более простой оператор if, эквивалентный этому.Затем напишите один оператор присваивания, который делает то же самое.

Ответы [ 3 ]

0 голосов
/ 11 октября 2018

Вы можете составить таблицу истинности .Первый шаг - определить входные данные и записать все комбинации их значений.

Input   Output
d   m   n
0   0   ?
0   1   ?
1   0   ?
1   1   ?

Затем заполните правильные выходные значения

Input   Output
d   m   n
0   0   0
0   1   0
1   0   0
1   1   1

Теперь вы должны увидеть, что функция вывода соответствуетк логическому И (&&).

0 голосов
/ 11 октября 2018

Более простое if утверждение:

if (doesSignificantWork && makesBreakthrough)
  nobelPrizeCandidate = true;
else
  nobelPrizeCandidate = false;

@ Ответ Blaze дает вам простейшую однострочную строку.Альтернатива

nobelPrizeCandidate = (doesSignificantWork && makesBreakthrough) ? true : false;
0 голосов
/ 11 октября 2018
if (doesSignificantWork) {
    if (makesBreakthrough)
        nobelPrizeCandidate = true;
    else
        nobelPrizeCandidate = false;
}
else if (!doesSignificantWork)
    nobelPrizeCandidate = false

эквивалентно

nobelPrizeCandidate = (doesSignificantWork && makesBreakthrough);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...