一、C#条件运算符(?:)

条件运算符(?:),有时也称为三元操作符“?:”。它是根据布尔型表达式的值返回?后面的两个值中的一个。如果条件为True,则计算第一个表达式并以它的计算结果为准;如果条件为False,则计算第二个表达式并以它的计算结果为准。

例如:

b ? x : y形式的条件表达式。首先计算条件b,如果b为True,则计算x,x自动成为运算结果;否则计算y,y自动成为运算结果。

条件运算符是向右关联的,就是表示运算是从右到左进行分组的。

例如:

a ? b : c ? d : e形式的表达式按照

a ? b : (c ? d : e)的顺序执行。

二、提示

?:的每一个操作数都必须是一个可以隐式转换成bool类型的表达式或者执行操作符True类型的表达式。

三、示例
 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            // C#条件运算符(?:)-www.baike369.com
            int a = 3;
            int b = 9;
            int c = 6;
            int d;
            d = (a > b ? a : b) > c ? (a > b ? a : b) : c;
            Console.WriteLine("d = " + d);
            Console.ReadLine();
        }
    }
}

运行结果:

d = 9示例分析:

d = (a > b ? a : b) > c ? (a > b ? a : b) : c;语句中,首先判断括号里面的语句:

a > b ? a : ba > b为假,所以此语句的结果是b。那么第一行语句可以改写成:

d = b > c ? b : cb > c为真,所以此语句的结果是b。因此:

d = 9

 

C#条件运算符(?:)的更多相关文章

  1. [C#6] 3-null 条件运算符

    0. 目录 C#6 新增特性目录 1. 老版本的代码 namespace csharp6 { internal class Person { public string Name { get; set ...

  2. java中的算术运算符、赋值运算符、比较运算符、逻辑运算符、条件运算符

    一.算术运算符 算术运算符主要用于进行基本的算术运算,如加法.减法.乘法.除法等. Java 中常用的算术运算符: 其中,++ 和 -- 既可以出现在操作数的左边,也可以出现在右边,但结果是不同滴 例 ...

  3. 条件运算符(?:)和 $""替代string.Format()

    1. 条件运算符(?:)根据Boolean表达式的值返回两个值之一.表达式如下: condition ? first_expression : second_expression 2. $" ...

  4. C和CPP关于条件运算符的区别

    条件运算符形式: cond ? expr1 : expr2; 在C语言中执行过程是: 先对cond求值,值为真返回expr1的值,否则返回expr2的值.(右值) gcc测试结果: 在Cpp中如果两个 ...

  5. objective-c 条件运算符

    条件运算符 val1!=0 ? val1:val2 等价于 val1?val2

  6. 慕课网-安卓工程师初养成-3-8 Java中的条件运算符

    来源:http://www.imooc.com/code/1306 条件运算符( ? : )也称为 “三元运算符”. 语法形式:布尔表达式 ? 表达式1 :表达式2 运算过程:如果布尔表达式的值为 t ...

  7. c#,if 分支语句,条件运算符

    //输入整数a和b, //若a²+b²大于100,则输出a²+b²百位以上数字, //否则输出两数之和 /*Console.Write("请输入整数a:"); int a = in ...

  8. 关于C++条件运算符(三目运算符)右结合的说明

    C++条件运算符 a ? c : d;是右结合的,但是这个右结合要怎么理解呢? 对于a ? b : c ? d : e; 这样的表达式如果按照右结合来解读的话,那不应该是先运算c,然后返回d或者e,返 ...

  9. javascript条件运算符

    variablename=(condition)?value1:value2 javascript条件运算符

  10. C语言的三目运算符(x=a?b:c):条件运算符

    三目运算符使用是为了有条件判断的选择赋值 x = a ? b : c 先计算 a表达式 是否为真.若为真,x 的值便是 b表达式的值,否则 x的值便是 c表达式的值. 条件运算符是右结合的. 如:a ...

随机推荐

  1. 继承、super、this、抽象类

    继承.super.this.抽象类 继承.super.this.抽象类 继承.super.this.抽象类 继承.super.this.抽象类 继承.super.this.抽象类

  2. jquery对象里面的context参数

    jquery源码: jQuery = function( selector, context ) { // The jQuery object is actually just the init co ...

  3. BZOJ 3673 可持久化并查集 by zky && BZOJ 3674 可持久化并查集加强版 可持久化线段树

    既然有了可持久化数组,就有可持久化并查集.. 由于上课讲过说是只能按秩合并(但是我也不确定...),所以就先写了按秩合并,相当于是维护fa[]和rk[] getf就是在这棵树中找,直到找到一个点的fa ...

  4. UVa 10256(凸包、线段交、点在多边形内)

    要点 红蓝点分别求凸包显然 判断两凸包是否相交方法:所有红点不在蓝凸包内,反之亦然:所有红凸包线不与蓝凸包线相交,反之亦然. 书上让特判一下凸包退化成点或线段的情况,为什么我感觉代码仓库的代码并没特判 ...

  5. hutool java工具架包功能介绍

    https://blog.csdn.net/lx1309244704/article/details/76459718

  6. android 开发-Process and Thread

    目录 1 android中进程与线程 - Processes and Threads 1.1 进程 - Processes 1.1.1 进程的生命期 1.2 线程 - Threads 1.2.1 工作 ...

  7. ACdream 1427—— Nice Sequence——————【线段树单点更新,区间查询】

    Nice Sequence Time Limit: 4000/2000MS (Java/Others)    Memory Limit: 128000/64000KB (Java/Others) Su ...

  8. drools的error:Jboss rule 6.4.0 Cannot find a default StatelessKieSession

    drools的kmodule.xml文件,如果是默认加载必须放在META-INF的文件夹下,如下图 官网大佬原话 Have you defined kieSession and KieBase nam ...

  9. ifream页面弹出框遮盖层覆盖父页面

    1.首先找到子页面上遮罩层的id, 2.然后再父页面编写个js方法 function shade() { $(".layui-layer-shade").height($(wind ...

  10. JavaScript初识(二)

    接上一篇: 九丶伪数组 arguments arguments代表的是实参.有个讲究的地方是:arguments只在函数中使用 (1)返回函数实参的个数:arguments.length fn(2,4 ...