在 Console.WriteLine 上使用三元运算符

问题描述 投票:0回答:5

我需要根据条件的真假打印一些字符串。

例如:

    if(i == m) {
        Console.WriteLine("Number is valid");
    } else {
        Console.WriteLine("Number is invalid");
    }

如何检查此条件并使用条件运算符仅使用一个

Console.WriteLine
打印一条消息?

我正在尝试:

    (i == m) ? Console.WriteLine("Number is valid") : Console.WriteLine("Number is not valid");

我知道我在这里做错了。有人可以告诉我正确的方法吗?

c# conditional-statements conditional-operator
5个回答
15
投票

试试这个:

    Console.WriteLine("Number is " + ((i == m) ? "valid" : "not valid"));

2
投票

将三元运算移至内部

WriteLine

Console.WriteLine((i == m) ? "Number is valid" : "Number is not valid");

2
投票

条件运算符是运算符。它返回一个值。它返回的值是来自其分支之一的值。

Console.WriteLine
是一种
void
方法。它不返回值。因此,您不能将其用作条件运算符的分支之一。

顺便说一句,这个运算符正确地称为“条件运算符”。它恰好是 a 三元运算符,这意味着它是一个带有三个参数的运算符。 埃雷 它运行:

  1. 一元
  2. 二进制
  3. 三元
  4. 第四纪

等等

目前C#中只有一个三元运算符——条件运算符。 恰好不存在四元或高阶运算符。


2
投票

我知道这是一个老话题,但我想补充我的两分钱。

您还可以使用

string.Concat()
,如下面的 C# 代码

Console.Writeline(string.Concat("Number is ", (i == m) ? "valid" : "not valid"));

在我看来,这是一种更干净的方法。


0
投票

1 #include 2 使用命名空间 std; 3 4 int main() { 5 字符串名称; 6 cout>>“请输入您的姓名:”; 7 cin>>姓名; 8 返回0;

© www.soinside.com 2019 - 2024. All rights reserved.