Ankur_Garg Ответов: 2

Я хочу вернуть true в приведенной ниже задаче. Какие параметры должны быть переданы вместо жирного первого блока?


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            A a = new A();
            bool ret = a.returnValue(true, true);
            Console.WriteLine(ret);
            Console.ReadLine();
        }
    }

    class A
    {
        public bool returnValue(bool a, bool b)
        {
            if (a && b)
                return false;

            if (a)
                if (b)
                    return true;

            return false;
        }
    }
}


Что я уже пробовал:

Я попробовал поместить все возможные значения как для a, так и для b

2 Ответов

Рейтинг:
6

OriginalGriff

Проблема в том, что ваши два условия одинаковы:
если a и b оба истинны, ваше первое условие возвращает false.
вторая пара условий-это то же самое: вы можете проверить b только в том случае, если a истинно, и вы возвращаете true только в том случае, если b также истинно. Таким образом, чтобы стать истинным, a и b должны быть истинными - чего они не могут быть, как если бы они были, вы уже вышли из метода с результатом false!

Я думаю, вам нужно немного больше подумать о том, при каких именно условиях вы хотите вернуть true - я не могу предложить ничего подобного, так как не знаю, что вы пытаетесь сделать с этим методом - его название не дает мне никаких подсказок о его логической цели!


Ankur_Garg

Этот вопрос был задан в интервью.

OriginalGriff

Тогда ты сможешь ответить на него так же, как и я! :смеяться:

Рейтинг:
17

F-ES Sitecore

Ваша функция никогда не вернет true. Чтобы" return true " был поражен, и a, и b должны быть истинными. Однако если a и b истинны, то первое "if (a & & amp; b)" будет выполнено, так что оно вернет false из этого.


Ankur_Garg

Этот вопрос был задан в интервью.