-10

いくつかのブール値のいずれかが true の場合に true を返すメソッドを実現しようとしています。

bool a = false;
bool b = false;
bool c = true;
bool d = false;

private bool oneOfThem()
{
   return a && b && c && d;
}

これはうまくいきません。しかし、どうすればこれを機能させることができますか?

4

6 に答える 6

5

演算子の代わりにOR( ) を使用.......||&&

|| オペレーター (C# リファレンス) - MSDN

条件付き OR 演算子 (||) は、bool オペランドの論理 OR を実行します。最初のオペランドが true と評価された場合、2 番目のオペランドは評価されません。最初のオペランドが false と評価された場合、2 番目の演算子は、OR 式全体が true と評価されるか false と評価されるかを決定します。

于 2013-05-04T13:28:43.647 に答える
3
private bool oneOfThem()
{
   return a || b|| c || d;
}

&&値のショートカットfalse.. 値の||評価とショートカットを続行しtrueます

于 2013-05-04T13:28:29.003 に答える
2

入力ブール値のいずれかが true の場合、これは true を返します。

return a || b || c || d;

参考文献


入力ブール値の 1 つだけが true の場合、これは true を返します。

return new[] { a, b, c, d }.Count(x => x) == 1;

または

return !new[] { a, b, c, d }.Where(x => x).Skip(1).Any();
于 2013-05-04T13:28:40.093 に答える
2

少なくとも 1 つが true であるという意味であれば、

return a || b || c || d;

1つだけを意味する場合は、

int truecount = 0;

if (a) truecount++;
if (b) truecount++;
if (c) truecount++;
if (d) truecount++;

return truecount == 1;
于 2013-05-04T13:30:08.460 に答える
0
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        public static bool a = false;
        public static bool b = false;
        public static bool c = true;
        public static bool d = false;

        static void Main(string[] args)
        {
            oneOfThem();
            Console.Read();
        }
        public static void oneOfThem()
        {
            bool[] _bArr = { a , b , c , d };
            char[] _cArr = { 'a', 'b', 'c', 'd' };
            int i = 0;
            foreach (bool _bool in _bArr)
            {
                if (_bool == true)
                {
                    Console.WriteLine(_cArr[i] + " returned : True.");
                }
                i++;
            }
        }
    }
}

宿題は終わりましたか?

于 2013-05-04T14:15:19.673 に答える