为什么我不能在C#三元表达式中使用break?

时间:2018-03-03 13:30:30

标签: c# break ternary-operator

我正在尝试将if else子句转换为while循环中的三元组,但是它不允许我在问号后面有一个中断,将中断处的错误指向为无效表达式。

如果将其他问题变成这样的三元组,我怎么能把这个变得简单呢?

while (true)
{
    Console.WriteLine("Enter 3 words seperated by spaces: ");
    var input = Console.ReadLine();
    //input == "" ? break : ConvertToPascal(input);
    if (input == "")
        break;
    else
        ConvertToPascal(input);
    }
}

2 个答案:

答案 0 :(得分:6)

因为三元是编写if-else结构的一种较短方式,所以编写一个基于某些条件选择两个值之一的表达式是一种简短的方法。 break是流控制语句,而不是值。

如果有帮助,请想一想:

someVar = cond ? a : b;

截至:

someVar = getValue(cond);

答案 1 :(得分:5)

使用三元运算符是不可能的,但您可以按如下方式简化代码结构:

string input;
do {
    Console.WriteLine("Enter 3 words seperated by spaces: ");
    input = Console.ReadLine();
    if (input != "") {
        ConvertToPascal(input);
    }
} while(input != "");