C-switch case之如何巧妙判断范围区域
当判断整数时
- 示例: 判断整数范围
#include <stdio.h> int main()
{
unsigned char buf[]={0x00,0x07,0x11,0x60,0x61,0x66}; for(int i=;i<;i++)
switch(buf[i])
{
case 0x00 ... 0x10: printf("buf[%d] is 0x0 ~0x10\n",i); break;
case 0x11 ... 0x20: printf("buf[%d] is 0x11~0x20\n",i); break;
case 0x30 ... 0x60: printf("buf[%d] is 0x30~0x60\n",i); break;
case 0x61 ... 0xff: printf("buf[%d] is 0x61~0xff\n",i); break;
}
}
打印:
当判断字符时
- 示例: 将"0x00"~"0xff"转化为数值0x00~0xff
#include <stdio.h> int main()
{
char buf[][]={"0xff","0X02","0X1f","0xf1","0xa1","0Xb0"};
for(int i=;i<;i++)
if(buf[i][]==''&&(buf[i][]=='x' || buf[i][]=='X')) //匹配前缀
{
unsigned char val=;
int err=;
for(int j=;j<;j++)
switch(buf[i][j])
{
case '' ... '' : val= val* + (buf[i][j]-''); break;
case 'a' ... 'f' : val= val* + (buf[i][j]-'a'+); break;
case 'A' ... 'F' : val= val* + (buf[i][j]-'A'+); break;
default : err =; break;
}
if(!err)
printf("buf[%d] = 0X%02X\n",i,val);
else
printf("buf[%d] ERR \n",i);
}
else
printf("buf[%d] ERR \n",i); }
打印:
C-switch case之如何巧妙判断范围区域的更多相关文章
- 为什么说在使用多条件判断时switch case语句比if语句效率高?
在学习JavaScript中的if控制语句和switch控制语句的时候,提到了使用多条件判断时switch case语句比if语句效率高,但是身为小白的我并没有在代码中看出有什么不同.去度娘找了半个小 ...
- switch...case和if...else if的判断应用
判断成绩所属等级的 两种方法 1... switch...case方法: #include<stdio.h> int main(void) { ;i <= ;++i) // ...
- if else 与switch case判断
基础数据类型(四类八种 ) 不能为null. 整数型 byte 取值范围2的8次方 short 取值范围2的16次方 int 取值范围2的32次方 一般用int long 取值范围2的64次方 浮点型 ...
- 使用反射+策略模式代替项目中大量的switch case判断
我这里的业务场景是根据消息类型将离线消息存入mongoDB不同的collection中.其中就涉及到大量的分支判断,为了增强代码的可读性和可维护性,对之前的代码进行了重构. 先对比一下使用反射+策略模 ...
- if判断和switch case 和三元运算符整理
if判断和switch case 和三元运算符整理 例子1:if判断写法: <script type="text/javascript"> var num = 12; ...
- Thymeleaf常用语法:条件判断 if、switch case
if语句条件判断使用th:if,它会判断表达式是否成立,表达式的结果支持boolean.number.character.String及其他类型.满足下面情况,if语句成立:(1) 表达式的结果是数字 ...
- switch case加范围判断
switch case是可以加范围判断的,但是语法有少许变化,参数不能写在switch里面,而是写在外面,如: const i = 3; switch (true) { case (i <= 0 ...
- js switch case 判断的是绝对相对===,值和类型都要相等
js switch case 判断的是绝对相对===,值和类型都要相等
- java中的switch case
switch-case语句格式如下 switch(变量){ case 变量值1: //; break; case 变量值2: //...; break; ... case default: //... ...
随机推荐
- js操作bom和dom
Bom 概念 BOM : Browser Object Model 浏览器对象模型,描述与浏览器进行交互的方法和接 口, ECMAscript是javascript的核心,但如果要在web中使用jav ...
- Python小练习之判断一个日期是一年的第几天
python练手遇到的一个问题写了个统一公式,不用麻烦的分各种类,如果有人测试出错误请评论通知. #分单双月 def dayNum(month,day,isLeap): if month % 2 != ...
- c++实现简单的客户端和服务端
server.cpp #include<WinScok.h> #include<windows.h> #include<stdio.h> int main() { ...
- PSR-PHP开发规范(本文版权归作者:luluyrt@163.com)
遵循PSR-4的自动加载 一.简介 首先这里要了解PSR,Proposing a Standards Recommendation(提出标准建议)的缩写,就是一种PHP开发规范,让我们研发出来的代码更 ...
- 00SQL表字段说明
SELECT d.name 表名 , a.colorder 字段序号 , a.name 字段名 , ISNULL(g.[value], '') AS 字段说明 , ( CASE WHEN COLUMN ...
- Oneinstack 环境安装 Flarum 轻量级论坛程序
之前做了个论坛,使用的是discuz框架,虽然这个框架已经很成熟,功能也相对较多,但毕竟老框架了,今天尝试用Flarum来搭建一个论坛,Flarum相对来说美观而且速度快 系统环境使用oneinsta ...
- JavaScript的屏幕输出及时间函数
Js屏幕输出 重定向页面输出: 更改输出流,如果在加载时使用则会正常排序,如果在HTML加载完成后使用,如点击事件,则会全部覆盖原HTML的内容. 1 <script> 2 //参数为输出 ...
- 解决删除chrome注册表残留问题
将下面这个全部复制下来并粘贴到命名为“remove.reg”的文件中.双击执行即可 Windows Registry Editor Version 5.00 ;WARNING, this file ...
- 【ABP框架系列学习】N层架构(3)
目录 0.引言 1.DDD分层 2.ABP应用构架模型 客户端应用程序(Client Applications) 表现层(Presentation Layer) 分布式服务层(Distributed ...
- SQL语句方法语法总结(一)
1.distinct:返回不重复.唯一的值. select distinct col_name from tbl_name --表中的col_name 列的值 如果有10条一样的,仅返回一条. 2.w ...