当前位置: 首页 > news >正文

[Oh My C++ Diary]善用三目运算符(a?b:c)

三目运算符——a?b:c

即有三个参与运算的量。由条件运算符组成条件表达式的一般形式为:表达式1 ? 表达式2 : 表达式3
其求值规则为:如果表达式1的值为真,则以表达式2 的值作为条件表达式的值,否则以表达式2的值作为整个条件表达式的值。 条件表达式通常用于赋值语句之中。

  • a? b : c可以理解为:
if(a) b;
else  c;
Example 1:重载绝对值函数
#include <iostream>
using namespace std;    
int abs(int x)
{
      return x>=0?x:-x;
}
double abs(double x)
{
      return x>=0?x:-x;
}
long abs(long x)
{
      return x>=0?x:-x;
}
int main()
{
      int x1 = 1;
      double x2 = -2.5;
      long x3 = 3L;
      cout<< "|x1| = " << abs(x1) << endl;
      cout<< "|x2| = " << abs(x2) << endl;
      cout<< "|x3| = " << abs(x3) << endl;
      return 0;
}
Example 2:将月份数值转换为相应的英文名称
char *month_name(int n)
{
    static char *month[]=
    {
           "Illegalmonth",            // 月份值错误
           "January",                    // 一月
           "February",                  // 二月
           "March",                      // 三月
           "April",                        // 四月
           "May",                         // 五月
           "June",                         // 六月
           "July",                         // 七月
           "August",                            // 八月
           "September",                // 九月
           "October",                    // 十月
           "November",                // 十一月
           "December"                  // 十二月
    };
    return(n>=1 && n<=12)?month[n]:month[0];
}

嘿嘿嘿…嘿…嘿嘿嘿嘿嘿…嘿…嘿嘿嘿嘿嘿…嘿…嘿嘿
好用

相关文章:

  • [Oh My C++ Diary]return 1和return 0的区别
  • [Oh My C++ Diary]Main函数参数argc,argv如何传入
  • [Oh My C++ Diary]怎样用cmd运行exe控制台程序
  • [Oh My C++ Diary]内联函数
  • [Oh My C++ Diary]\t \n \r的用法
  • [Oh My C++ Diary]结构体变量的声明
  • [Oh My C++ Diary]函数重载
  • [Oh My C++ Diary]带参数的main()函数
  • [Oh My C++ Diary]#ifndef / #define / #endif 使用详解
  • MySQL添加注释(comment)
  • MySQL复制表的结构、内容(数据)的方法
  • MySQL5.7永久统一编码/字符集为utf8(解决乱码)
  • MySQL5.7将编码由utf8改为utf8mb4(字符集)
  • MySQL撤销外键约束
  • MySQL将数据库和已建的表转换成utf8mb4的语句
  • 分享的文章《人生如棋》
  • 《网管员必读——网络组建》(第2版)电子课件下载
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【402天】跃迁之路——程序员高效学习方法论探索系列(实验阶段159-2018.03.14)...
  • Angular 响应式表单之下拉框
  • ES10 特性的完整指南
  • js学习笔记
  • Laravel核心解读--Facades
  • Nodejs和JavaWeb协助开发
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • Webpack 4 学习01(基础配置)
  • 服务器之间,相同帐号,实现免密钥登录
  • 记录:CentOS7.2配置LNMP环境记录
  • 聊聊spring cloud的LoadBalancerAutoConfiguration
  • 使用 @font-face
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 用quicker-worker.js轻松跑一个大数据遍历
  • ​VRRP 虚拟路由冗余协议(华为)
  • "无招胜有招"nbsp;史上最全的互…
  • # Python csv、xlsx、json、二进制(MP3) 文件读写基本使用
  • (6)设计一个TimeMap
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net core 3.0 linux,.NET Core 3.0 的新增功能
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • .net2005怎么读string形的xml,不是xml文件。
  • .NET处理HTTP请求
  • .Net下C#针对Excel开发控件汇总(ClosedXML,EPPlus,NPOI)
  • .Net小白的大学四年,内含面经
  • []T 还是 []*T, 这是一个问题
  • [2019/05/17]解决springboot测试List接口时JSON传参异常
  • [BZOJ 3282] Tree 【LCT】
  • [C#]winform部署yolov5-onnx模型
  • [CSS]CSS 字体属性
  • [Gamma]阶段测试报告
  • [Hibernate] - Fetching strategies
  • [Hive] 常见函数
  • [LeetCode刷题笔记]1 - 两数之和(哈希表)
  • [NAND Flash 6.2] NAND 初始化常用命令:复位 (Reset) 和 Read ID 和 Read UID 操作和代码实现
  • [Notice] 朋友们,blog更新http://jiang-hongfei.spaces.live.com