关于IF的一般编程if语句C#

时间:2012-04-01 07:16:39

标签: c# if-statement

嗯,我得到了这个if else语句,其中我有12个变量,可以是0,1或2.如果它的传递是0,如果它的1失败,如果它的2是未知的。我想知道是否有人知道在C#中编写它的更短的方式

这是我必须写的,如果没有

string pass = "pass";
string fail = "fail"; 
string unknown = "unknown"
if ( value == 0)
{
    test1 = pass; 
}
else if (value == 1)
{ 
    test1 = fail; 
}
else if (value == 2)
{
    test1 = unknown; 
}
if ( value1 == 0)
{
    test2 = pass; 
}
else if (value1 == 1)
{ 
    test2 = fail; 
}
else if (value1 == 2)
{
    test2 = unknown; 
}
.
.
.

if ( value12 == 0)
{
   test13 = pass;
}

让我再解释一下。我在网页上有12张图片需要更新,具体取决于值的数据库。每张图片只能是3个选项中的一个,可以根据数据库进行更改。通过(复选标记),失败(红色x)和未知(问号)。如果您需要更多详细信息,请与我们联系。

4 个答案:

答案 0 :(得分:6)

  

嗯,我得到了这个if else语句,其中我有12个变量,可以是0 1或2。

如果您希望能够以类似的方式处理多个变量,则应该为它们使用集合,例如:数组或List<T>。如果您还没有拥有他们的收藏品,您可以创建一个:

int[] values = { value0, value, value2 /* etc * };

......虽然如果你从一开始就把它们作为一个集合会更好。

然后你可以迭代所有这些。我不清楚为什么在这种情况下你会覆盖每个块中test的值,但是拥有一组输入最终会产生一种创建输出集合的自然方式。您还可以使用switch语句或条件表达式来简化检查。例如:

public static string ConvertValueToLabel(int value)
{
    switch (value)
    {
        case 0: return "pass";
        case 1: return "fail";
        case 2: return "unknown";
        // Adjust this behaviour as appropriate...
        default: throw new ArgumentOutOfRangeException("value");
    }
}

或者:

public static string ConvertValueToLabel(int value)
{
    // Note that this doesn't do the same range checking as the version above
    return value == 0 ? "pass"
        :  value == 1 ? "fail"
        :  "unknown";             
}

(有些人不喜欢&#34;堆叠&#34;像这样的条件,我可能不会在这个情况下使用它,其中可能有一个switch语句更明智,但可以非常方便。)

答案 1 :(得分:1)

看起来像数组的情况。

        int[] values = { 1, 1, 2, 2, 1, 2 };
        for (int i = 0; i < values.Length; i++)
        {
            if (values[i] == 1)
            {
            }
            else if (values[i] == 2)
            {
            }
        }//for

答案 2 :(得分:0)

根据您的代码,无需检查值0-11,因为使用value12再次更改测试变量。所以你可以检查最后一个值,然后跳过所有其他值。

答案 3 :(得分:0)

我会写一个for循环来检查每个变量。或者,至少将支票写为可以用每个变量引用的函数。如果变量是串联的并且可以按顺序确定它们的名称,请执行前者。如果变量名称彼此之间并不真正相关,请执行后面的操作。

如有必要,将变量放入一个可以循环的数组中。