c#规模程序帮助(简单)

本文关键字:简单 帮助 程序 | 更新日期: 2023-09-27 18:17:49

我想做一个程序,计算7个数字的总和。但有一个转折。如果这些变量中的一个小于84或大于184,则该变量将从其他6个数字的总和中计算。

例如:

a=50
b=51
c=90
d=91
e=92
f=93
g=94

现在是;c + d + e + f + g。我需要用1000个"如果"句子来做这件事吗?

c#规模程序帮助(简单)

如果你不允许使用循环,那么下一个最简单的方法可能是创建一个函数并使用它来代替+。我假设你也不允许使用其他稍微复杂一点的概念,比如类等。

public int ValueTest(int iValue)
{
    if ((iValueTwo > 84) && (iValueTwo < 184) {
        return iValue;
    }
    return 0;
}
static int Main(string[] args)
{
    int a=50;
    int b=51;
    int iResult = 0;
    iResult = ValueTest(a) + ValueTest(b);
    Console.WriteLine("Result is: ", iResult);
    return 0;
}

我只做了两个值,但这应该给你一个想法。我还没有测试过这段代码,所以我可能错过了一些小的东西,但总的想法应该仍然是合理的。

欢呼

我需要用1000个"如果"句子来做这个吗?

不,只有7

int total = 0;
if(a >= 84 && a <= 184)
   total += a;

. .等

一行(或者更确切地说是一个单语句格式化为适合这里):

int total = ((a >= 84 && a <= 184) ? a : 0) + 
        ((b >= 84 && b <= 184) ? b : 0) + 
        ((c >= 84 && c <= 184) ? c : 0) + 
        ((d >= 84 && d <= 184) ? d : 0) + 
        ((e >= 84 && e <= 184) ? e : 0) + 
        ((f >= 84 && f <= 184) ? f : 0) + 
        ((g >= 84 && g <= 184) ? g : 0);

或者你可以用LINQ来做(如果允许的话):

int total = new {a, b, c, d, e, f, g}.Where(x => x >= 84 && x <= 184).Sum();