C# if-else语句的编写方法

C# if-else语句的编写方法,c#,java,if-statement,ternary-operator,C#,Java,If Statement,Ternary Operator,可以使用三元运算符编写if-else语句,例如 output = (val>val2) ? "Condition is true" : "Condition is false"; 现在考虑 if(condition1){ //do something }else if(condition2){ //do something }else if(condition3){ //do something } 如何使用三元运算符编写上述代码?试试这个 试试这个 当然可以 您试图

可以使用三元运算符编写
if-else
语句,例如

output = (val>val2) ? "Condition is true" : "Condition is false";

现在考虑

if(condition1){
   //do something
}else if(condition2){
   //do something 
}else if(condition3){
  //do something
}
如何使用三元运算符编写上述代码?

试试这个

试试这个

当然可以

您试图编写的是一个三元运算符,作为if-else语句

好吧,让我们从逻辑上推断一下

output = (val>val2) ? "Code here when condition is true" : "Code here when condition is false";
我们要说的是

if(val > val2)
{
    //code here when condition is true;
}
else
{
  //code here when condition is false;
}
就这样

快乐编码!;)

当然

您试图编写的是一个三元运算符,作为if-else语句

好吧,让我们从逻辑上推断一下

output = (val>val2) ? "Code here when condition is true" : "Code here when condition is false";
我们要说的是

if(val > val2)
{
    //code here when condition is true;
}
else
{
  //code here when condition is false;
}
就这样


快乐编码!;)

像这样的扩展形式:

X outputfn( ... )
{
  if(c1)      { return A; }
  else if(c2) { return B; }
  else        { return C; }
}

output = outputfn(...);
可以翻译成

output = (c1)?A:((c2)?B:C);
但它很难读懂


因此,我建议将其提取到函数中,并改用该函数。

类似以下的扩展形式:

X outputfn( ... )
{
  if(c1)      { return A; }
  else if(c2) { return B; }
  else        { return C; }
}

output = outputfn(...);
可以翻译成

output = (c1)?A:((c2)?B:C);
但它很难读懂


因此,我建议将其提取到函数中,然后改用该函数。

我想我明白了。您将需要以下内容:

output = (val>val3)?"First Case":(val>val2)?"Second Case":"Default Case";

您只需在表达式的最右边的子句中放置后续的if。请注意,最后总是会有一个默认情况。

我想我明白了。您将需要以下内容:

output = (val>val3)?"First Case":(val>val2)?"Second Case":"Default Case";
output = (condition1) ? 
          "First Case" : ((condition2) ?
          "Second Case" : ( (condition3) ? 
          "Third Case") : (...));
您只需在表达式的最右边的子句中放置后续的if。请注意,在结尾处始终会有一个默认情况

output = (condition1) ? 
          "First Case" : ((condition2) ?
          "Second Case" : ( (condition3) ? 
          "Third Case") : (...));
但请记住,如果条件数量超过3个,这将是一场维护噩梦


但请记住,如果条件数量超过3个,这将是一场维护噩梦

我会这样格式化它:

int result = condition1 ? 1
  : condition2 ? 2
  : condition3 ? 3
  : -1;

但我同意其他海报上的说法,嵌套三元运算符可能很难理解。

我将以这种方式格式化它:

int result = condition1 ? 1
  : condition2 ? 2
  : condition3 ? 3
  : -1;

但我同意其他海报上的说法,嵌套三元运算符可能很难理解。

为什么?您所写的内容非常清楚,使用三元运算符不会更改生成的代码。

为什么?你写的很清楚,使用三元运算符不会改变生成的代码。

你编写的方式非常好,从你得到的两种不同类型的答案可以看出你确实没有把问题说清楚。你编写的方式非常好,从你得到的两种不同类型的答案可以看出你确实没有把问题说清楚问题很清楚。我同意,通过将此逻辑移动到函数中,从而给它一个有意义的名称,代码将更容易理解。我同意,通过将此逻辑移动到函数中,从而给它一个有意义的名称,代码将更容易理解。他想知道如何使用?:有多种条件的表单。他想知道如何使用?:具有多个条件的表单。