样品:
static void Main(string[] args)
{
bool result =
IsGreaterThanTen(1) &&
IsGreaterThanTen(5) &&
IsGreaterThanTen(10) ||
IsGreaterThanTen(20);
}
static bool IsGreaterThanTen(int value)
{
return value > 10;
}
我必须多次动态调用 IsGreaterThanTen 方法 并将它们与&& 或 || 组合,就像这个样本
也许我有一个数组
int[] array = new int[]{ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19.....};
我会为每个数组项目调用 IsGreaterThanTen 方法
并与&& 或 || 结合使用,以返回 bool 结果。
它可能看起来像:
bool result =
IsGreaterThanTen(1) &&
IsGreaterThanTen(3) ||
IsGreaterThanTen(5) &&
IsGreaterThanTen(7) ||
IsGreaterThanTen(9) &&
IsGreaterThanTen(11)..............
我可以将它们与&& 或 || 操作员动态组合起来
我只是想知道结果
怎么做?
更新
我想根据用户设置将它们与||
或&&
结合使用。
答案 0 :(得分:3)
var array = new int[]{ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19};
var result = IsGreaterThanTen(array[0]);
for (int i = 1; i < array.Length; i++)
{
var number = array[i];
if (number % 2 == 0)
{
result = result && IsGreaterThanTen(number);
}
else
{
result = result || IsGreaterThanTen(number);
}
}
return result;
答案 1 :(得分:2)
试试这个
static void Main(string[] args)
{
bool result =
(
IsGreaterThanTen(1) &&
IsGreaterThanTen(5)
) &&
(
IsGreaterThanTen(10) ||
IsGreaterThanTen(20)
);
}
答案 2 :(得分:2)
这个问题仍然模糊不清,但我认为你希望得到&amp;&amp; amp;或者||整套。您只需使用快捷循环即可完成此操作。 (未经测试的代码,我没有C#运行时)
bool testArray(int[] values, char op) {
if ('&' == op) {
for (int i = values.length; i > 0; i--) {
if (!IsGreaterThanTen(values[i])) {
return false;
}
}
return true; // if none failed, then all passed
} elseif ('|' == op) {
for (int i = values.length; i > 0; i--) {
if (IsGreaterThanTen(values[i])) {
return true;
}
}
return false; // if none passed, then all failed
}
return null; // an invalid op was passed
}
int[] array = new int[]{ 1, 3, 5, 7, 9, 11, 13, 15, 17, 19.....};
bool result = testArray(array, '&');
答案 3 :(得分:1)
顺便说一下:
bool doIt(){
if (IsGreaterThanTen(20))
return true;
else if (!IsGreaterThanTen(1)
return false;
else if(!IsGreaterThanTen(5))
return false;
else if(!IsGreaterThanTen(10))
return false;
else return true;
}
static void Main(string[] args) {
bool result = doIt();
}
在if语句中,这是重要的陈述顺序, 所以我先放一些便宜的
答案 4 :(得分:0)
我不知道用户设置是什么,但你可以试试这个:
var results = userSettings == "something1" ? IsGreaterThanTen(1) &&
IsGreaterThanTen(3) ||
IsGreaterThanTen(5) &&
IsGreaterThanTen(7) ||
IsGreaterThanTen(9) &&
IsGreaterThanTen(11) : userSettings == "something2" ? IsGreaterThanTen(1) ||
IsGreaterThanTen(3) &&
IsGreaterThanTen(5) ||
IsGreaterThanTen(7) &&
IsGreaterThanTen(9) ||
IsGreaterThanTen(11);
等等,如果需要,你也可以将它与for循环结合起来