没有 else 子句的单行 If 条件 [重复]

Posted

技术标签:

【中文标题】没有 else 子句的单行 If 条件 [重复]【英文标题】:Single line If condition without else clause [duplicate] 【发布时间】:2019-09-14 02:39:18 【问题描述】:

我们如何在运算符中写一个没有 else 的单行 If 条件?

例子:

如果(计数==0)计数=2;

我们如何在上面写如下:

count=count==0?2;

作为三元运算符需要 if else 条件。我想在没有三元运算符的情况下做到这一点。 C#中是否有可用的运算符?

谢谢。

【问题讨论】:

你不能。只需使用 if 语句即可。 您开始使用的if (count==0) count=2; 是“没有else 的单行if 语句”。那有什么问题,或者三元运算符有什么问题?这些是 C# 提供的执行此操作的方式,所以这就是您使用的方式。 ? operator without else-part 或 Use of ternary operator without using assignment or return 或 Is it possible to put only one option on a ternary expression? 的可能重复项 【参考方案1】:

您不需要将elseif 配对;你可以单独使用它:

if (count == 0)
        count = 2;

如果语法不符合您的喜好,可以用多种方式编写:

if (count == 0) count = 2;

if (count == 0)  count = 2; 

if (count == 0) 
    count = 2;


if (count == 0)

    count = 2;


正如另一张海报指出的那样,您可以使用可空 int 并初始化为 null 以与空合并运算符进行二进制交互:

int? count = null; // initialization

// ... later

count = count ?? 2;

【讨论】:

【参考方案2】:
count = count == 0 ? 2 : count;

或者为了更多乐趣:

using System;               
public class Program

    public static void Main()
    
        foreach(int x in System.Linq.Enumerable.Range(-5, 10))
        
            int count = x;
            bool y = count == 0 && (0 == count++ - count++);
            Console.WriteLine(count);
        
    

【讨论】:

为什么不用三元运算符?这绝对需要什么?

以上是关于没有 else 子句的单行 If 条件 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

《代码大全》阅读笔记-15-使用条件语句

pb中的条件语句,if else,choose case ,for

CSS if else 条件,移动纵向或横向[重复]

条件 SQL 语句 - 在插入/更新查询之间切换 [重复]

php if else条件在变量中作为字符串[重复]

如何在 SQL 查询中动态跳过没有 If else 的 where 子句?