我正在尝试实现一种方法,如果几个布尔值之一为真,则该方法返回真。
bool a = false;
bool b = false;
bool c = true;
bool d = false;
private bool oneOfThem()
{
return a && b && c && d;
}
这行不通。但我怎么能做到这一点呢?
我正在尝试实现一种方法,如果几个布尔值之一为真,则该方法返回真。
bool a = false;
bool b = false;
bool c = true;
bool d = false;
private bool oneOfThem()
{
return a && b && c && d;
}
这行不通。但我怎么能做到这一点呢?
使用OR
( ||
) 代替&&
运算符.......
条件或运算符 (||) 对其布尔操作数执行逻辑或。如果第一个操作数的计算结果为真,则不计算第二个操作数。如果第一个操作数的计算结果为 false,则第二个运算符确定整个 OR 表达式的计算结果为 true 还是 false。
private bool oneOfThem()
{
return a || b|| c || d;
}
&&
值的快捷方式false
..||
将继续评估true
值和快捷方式
如果任何输入布尔为真,这将返回真:
return a || b || c || d;
延伸阅读
如果输入布尔值之一为真,这将返回真:
return new[] { a, b, c, d }.Count(x => x) == 1;
或者
return !new[] { a, b, c, d }.Where(x => x).Skip(1).Any();
如果你的意思是至少有一个是真的,
return a || b || c || d;
如果你只说一个,
int truecount = 0;
if (a) truecount++;
if (b) truecount++;
if (c) truecount++;
if (d) truecount++;
return truecount == 1;
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++;
}
}
}
}
家庭作业完成了吗?