首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

改变if语句中的状态是不好的做法吗?

在编程中,将if语句中的状态改为其他形式通常是可以接受的,但也要根据具体情况来判断。以下是一些建议:

  1. 使用三元运算符:如果if语句只有一个条件,可以使用三元运算符(ternary operator)来简化代码。例如:
代码语言:txt
复制
// 原始的if语句
if (x > y) {
  max = x;
} else {
  max = y;
}

// 使用三元运算符简化
max = (x > y) ? x : y;
  1. 使用switch语句:如果有多个条件需要判断,可以考虑使用switch语句。这样可以使代码更易读,也更易于维护。
代码语言:txt
复制
// 原始的if语句
if (fruit === 'apple') {
  price = 1.5;
} else if (fruit === 'banana') {
  price = 0.8;
} else if (fruit === 'orange') {
  price = 1.2;
} else {
  price = 0;
}

// 使用switch语句简化
switch (fruit) {
  case 'apple':
    price = 1.5;
    break;
  case 'banana':
    price = 0.8;
    break;
  case 'orange':
    price = 1.2;
    break;
  default:
    price = 0;
}
  1. 使用对象映射:如果有很多if语句需要处理,可以考虑使用对象映射(object mapping)来简化代码。
代码语言:txt
复制
// 原始的if语句
if (fruit === 'apple') {
  price = 1.5;
} else if (fruit === 'banana') {
  price = 0.8;
} else if (fruit === 'orange') {
  price = 1.2;
} else {
  price = 0;
}

// 使用对象映射简化
const fruitPrices = {
  apple: 1.5,
  banana: 0.8,
  orange: 1.2
};

price = fruitPrices[fruit] || 0;

总之,将if语句中的状态改为其他形式并不总是一个坏的做法,但需要根据具体情况来判断。在某些情况下,使用三元运算符、switch语句或对象映射可以使代码更易读、更易于维护。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

spring boot thymeleaf真的那么随便就可以用?弄不好你就会遇到很头疼

spring boot 默认推荐使用模板引擎thymeleaf而非JSP。网上很多都是告诉你,怎么快速访问到thymeleaf,但是真的就那么简单? 你或许会遇到如下问题: ?...信息实说,在aa.html中第6行第三列出错了。 现在我们回到aa.html中查看第6行第3列: ? 我们发现,就只是head标签。这个html页面直接访问不会报错。...spring.thymeleaf.mode = LEGACYHTML5 spring.thymeleaf.mode默认值HTML5,其实是一个很严格检查,改为LEGACYHTML5可以得到一个可能更友好亲切格式要求...需要注意,LEGACYHTML5需要搭配一个额外库NekoHTML才可用。...以下凯哥配置文件信息: ?

1.4K20
  • C语言——分支与循环

    引言 由前面的知识我们可以知道C一种结构化程序设计⾔,这⾥结构包括顺序结构、选择结构、循环结构,在C语言中我们可以使⽤ if 、 switch语句 实现分⽀结构,使⽤ for 、...你知道下面的代码输出结果是什么?...语句中 case 语句和 default 语句没有顺序要求,只要你顺序满⾜实 际需求就可以了,不过我们通常是把 default ⼦句放在最后处理。...6.switch 语句也是分⽀效果,只有在 switch 语句中使⽤ break 才能跳出 switch 句,如果某⼀个 case 语句后边没有 break 语句,代码会继续往下执⾏,有可能执⾏...改变循环执行状态 break break 作⽤⽤于 永久终⽌循环 ,只要 break 被执⾏,直接就会跳出循环,继续往后执 ⾏。

    6410

    开发 7 年,我学到了什么?

    Tomasz 讲到了以下 6 个要点: 编程中最重要语言 对于中国开发者来说,这个问题答案多半“英语”,然而 Tomasz 却说:英语,或者西班牙、中文、波兰,或者其它任何你在工作中与他人交流所用语言...如果你对正在开发或者维护系统有深入了解,那么就可以在纯技术之外做出决策。这个功能必要?它解决了什么问题?我们能以其它方式解决这个问题?这个问题优先级这么高合理?...但是如果真的发现别人实现功能完全无效,那么怎么办呢?合适做法私下去联系代码编写者,与他们交流,找出他们为什么会以这样方式实现该功能。...大多数人都不会想着说要写出不好代码,如果他们代码你觉得不行,那可能他们在处理一些你没注意到限制问题;或者他们确实编程能力还不够强,那这个时候就是你展现实力,帮助他们解决问题时候了。...分享学习成果 当你从“我不知道”状态中学习到某项新技术时候,这时候可以去与他人分享你学习成果。比如写自己博客、录制视频教程、在公司分享活动中演讲,或者只是简单地把知识点告诉另一个人。

    40240

    Java设计模式(通俗版)

    享元模式能做到共享关键区分内蕴状态和外 蕴状态。内蕴状态存储在享元内部,不会随环境改变而有所不同。外蕴状态随环境改变改变。外蕴状态不能影响内蕴状态,它们相互独立。...备忘录模式用意在不破坏封装条件下,将一个对象状态捉住,并外部化,存储起来,从而可以在将来合适时候把这个对象还原到存储起来状态。...官方状态模式允许一个对象在其内部状态改变时候改变行 为。这个对象看上去象是改变了它类一样。状态模式把所研究对象行为包装在不同状态对象里,每一个状态对象都属于一个抽象状态一个子类。...状态模 式意图让一个对象在其内部状态改变时候,其行为也随之改变状态模式需要对每一个系统可能取得状态创立一个状态子类。当系统状态变化时,系 统便改变所选子类。...女生从认识到上床不变步骤分为巧遇、打破僵局、展开追求、接吻、前戏、动手、爱抚、进去八 大步骤(Template method),但每个步骤针对不同情况,都有不一样做法,这就要看你随机应变啦(具体实现

    38420

    Python 为什么要在 18 年前引入布尔类型?且与 C、C++ 和 Java 都不同?

    我今天吃中国菜,我饼上写着:“Strong and bitter words indicate a weak cause.”...1、本 PEP 应该被接受? =>是的。 有很多反对本 PEP 观点。其中多数出于误解。我已尝试在下面的 PEP 正文中澄清一些最常见误解。...6、bool 应该继承自 int ? =>是的。 在理想情况下,bool 最好实现为一种单独整数类型,且支持执行混合算术操作。...问题每个人做法都不一样。例如,你应该使用“FALSE”、“false”、“False”、“F”还是“f”呢?...例如,在 if 语句中使用时,一个空列表为 false,一个非空列表为 true;这不会改变,而且也不打算改变。 唯一改变在返回或赋值时,用于表示真假值首选值。

    1.1K20

    分支和循环(2)

    4.5 短路  C⾔逻辑运算符还有⼀个特点,它总是先对左侧表达式求值,再对右边表达式求值,这个顺序 保证。 如果左边表达式满⾜逻辑运算符条件,就不再对右边表达式求值。...原因 switch 语句也是分⽀效果,只有在 switch 语句中使⽤ break 才能在跳出 switch 句,如果某⼀个 case 语句后边没有 break 语句,代码会继续往下执⾏,有可能执...就⽐如上⾯代码就执⾏了 case 2 中语句。 所以在 switch 语句中 break 语句⾮常重要,能实现真正分⽀效果。...case和default顺序问题 在 switch 语句中 case ⼦句和 default ⼦句有要求顺序?...default 只能放在最后? 其实,在 switch 语句中 case 语句和 default 语句没有顺序要求,只要你顺序满⾜实 际需求就可以。

    5810

    PostgreSQL 审计怎么搞

    有些熟悉PG同学可能说,不是可以log_statement = all 来记录所有的语句,干嘛那么麻烦,自己去查日志不就好了。...日志格式 AUDIT_TYPE - 告知你目前audit 方式 session 还是 object STATEMENT_ID - 主语句会话ID SUBSTATEMENT_ID - 主语句中每个子语句顺序...类型名字,例如表名,存储过程名等等 STATEMENT - 执行语句 PARAMETER - 相关参数 此时有人可能提出,这个设计不好,为什么不能设计到插入到表中,个人觉得有两点,既然叫审计日志...,1 他提供审计 2 他日志 如果日志在某些情况下爆发增长,怎么办,塞满整个表存储空间,从多方面考虑,让日志存储在适当地方,其实是一个比较规范做法。...pgaudit.log_relation 指定会话审计日志记录是否应该为SELECT或DML语句中引用每个关系(表、视图等)创建单独日志条目。

    2.6K40

    我与C语言二周目邂逅vlog——3.分⽀和循环

    1. if语句 1.1 if C结构化程序设计⾔,这⾥结构指的是顺序结构、选择结构、循环结构,C能够实 现这三种结构,其实我们如果仔细分析,我们⽇常所⻅事情都可以拆分为这三种结构或者这三种...和第⼆个 if 进⾏匹配,这样后边 if...else 语句嵌套在第⼀个 if 语句中,如果第⼀个 if 语句就不 成⽴,嵌套 if 和 else 就没机会执⾏了,最终啥都不打印。...逻辑运算符提供逻辑判断功能,⽤于构建更复杂表达式,主要有下⾯三个运算符。 • ! :逻辑取反运算符(改变单个表达式真假)。...• switch 后 expression 必须整型表达式 • case 后值,必须整形常量表达式 5.1 break 只有在 switch 语句中使⽤ break 才能在跳出 switch... 句,如果某⼀个 case 语句后边没有 break 语句,代码会继续往下执⾏,有可能执⾏其他 case 语句中代码,直到遇到 break 语句或者 switch 语句结束。

    6510

    数据库性能和数据库安全:面试题上以小见大

    你要知道,当做出这样改写,这条SQL长度增加,SQLID改变,占用Shared Pool共享内存也较以前增加了。...进行数据字典列验证增多,消耗也会增加,也就是CPU占用会增加(当然这可能微微改变); 其次,SQL语句中,age 和 boyfriend 字段查询,都没有使用绑定变量,这对于不同查询,如 between...其次,很少有数据库里存在 age 字段设计,因为那会是一个不断改变事实,更合理做法存储『出生日期』,这是基本数据模型设计守则。...因为 boyfriend 状态可能极不稳定,也可能不是1:1关系,更加该字段需要频繁变更,可能很难以维持一致性。...千言万,千头万绪,汇成最后答案:这条SQL最终不应该被执行,也不会有返回结果。 ​ 加油吧,少年! 公众号尾图.jpg

    3.3K00

    一道面试题引出系列数据库性能,数据安全问题及解决方案

    你要知道,当做出这样改写,这条SQL长度增加,SQLID改变,占用Shared Pool共享内存也较以前增加了。...进行数据字典列验证增多,消耗也会增加,也就是CPU占用会增加(当然这可能微微改变); 其次,SQL语句中,age 和 boyfriend 字段查询,都没有使用绑定变量,这对于不同查询,如 between...其次,很少有数据库里存在 age 字段设计,因为那会是一个不断改变事实,更合理做法存储『出生日期』,这是基本数据模型设计守则。...因为 boyfriend 状态可能极不稳定,也可能不是1:1关系,更加该字段需要频繁变更,可能很难以维持一致性。...千言万,千头万绪,汇成最后答案:这条SQL最终不应该被执行,也不会有返回结果。

    47320

    C语言分支循环语句(上)

    前言 C结构化程序设计⾔,这⾥结构指的是顺序结构、选择结构、循环结构,C能够实 现这三种结构,其实我们如果仔细分析,我们⽇常所⻅事情都可以拆分为这三种结构或者这三种 结构组合...⽐如:要求输⼊⼀个整数,判断输⼊整数0,还是正数或者负数。...0\n"); else if(num > 0) //这⾥if 相当于嵌套在els语句中,形成了嵌套结构 printf("输⼊数字正数\n"); else printf("输⼊数字负数\...:逻辑取反符(改变真假) && 与运算符 || 或运算符 上面三个操作符相当于高中数学中 “或” “且” “非” 四.switch语句 除了 if 语句外,C⾔还提供了 switch 语句来实现分...; break; } return 0; } 注意 case和后面的数字必须有空格 每⼀个 case 语句中代码执行完成后,需要加上 break ,才能跳出这个switch语句。

    8310

    【C语言篇】分支语句详解(超详细)

    分支语句详解 前言 C结构化程序设计⾔,这⾥结构指的是顺序结构、选择结构、循环结构,C能够实现这三种结构,其实我们如果仔细分析,我们⽇常所⻅事情都可以拆分为这三种结构或者这三种结构组合...if语句 if if语句语法形式如下: if ( 表达式 ) 语句 表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏ 在C⾔中,0为假,⾮0表⽰真,也就是表达式结果如果0,则语句不执...switch语句 除了 if 语句外,C⾔还提供了 switch 语句来实现分⽀结构。 switch 语句⼀种特殊形式if...else 结构,⽤于判断条件有多个结果情况。...就⽐如上⾯代码就执⾏了 case 2中语句。 所以在 switch语句中 break语句⾮常重要,能实现真正分⽀效果。...case和default顺序问题 在 switch 语句中 case ⼦句和 default ⼦句有要求顺序

    13610

    关于C语言分支与循环语句

    在 switch 语句中 case ⼦句和 default ⼦句有要求顺序? default 只能放在最后?...其实,在 switch 语句中 case 语句和 default 语句没有顺序要求,只要你顺序满⾜实 际需求就可以。 不过我们通常是把 default ⼦句放在最后处理。...所以在 do while 语句中循环体⾄少执⾏⼀次,这是 do while 循环⽐较特殊地⽅。 同样,这三种循环语句也可以嵌套使用。...C⾔中 提供了 break 和 continue 两个关键字,就是应该到循环中。 • break 作⽤⽤于永久终⽌循环,只要 break 被执⾏,直接就会跳出循环,继续往后执 ⾏。...4.goto语句 C⾔提供了⼀种⾮常特别的语法,就是 goto 语句和跳转标号, goto 语句可以实现在同⼀个函数 内跳转到设置好标号处。

    12510

    pageResponse - 移动端适配框架

    常规做法带来苦恼 常规这些做法总有一些缺陷令人遗憾: 1、rem和百分比布局,这种布局rem终归也是有极限,当屏幕比较大时,页面元素就开始变得有那么一些不协调了。...3、media query,正常来说这种做法最好,然而遗憾,它会大大增加UI工作量,同时也大大增加你工作量,因此不是哥不想用你,哥真的没办法大量用你啊。...通过这个框架关于比例失真的问题全部迎刃而解,然而解决一个问题同时也会暴露出其他问题,这个框架达到效果会是你想要效果?用户体验你想要?...结束 移动端有很多做法,对于我来说之前提到三种常用方法我都用过,而他们经常是结合着用,单独存在往往不能够满足需求,就拿一个简单例子来说 main footer 竖屏时候你希望footer在底部...,假如横屏时候main区域已经占满屏幕了,这时候如果还按照原来比例进行缩放,用户会划过相当长一部分空内容区域然后再到达footer,这样用户体验非常不好,于是你需要合理利用media query

    1.1K60

    详解分支和循环结构(剖析if语句,switch语句,while循环,for循环,do-while循环)

    介绍 C结构化程序设计⾔,这⾥结构指的是顺序结构、选择结构、循环结构,C能够实现这三种结构,其实我们如果仔细分析,我们⽇常所⻅事情都可以拆分为这三种结构或者这三种结构组合。...分支结构 if语句 if(表达式) 语句1 else 语句2 表达式成⽴(为真),则语句执⾏,表达式不成⽴(为假),则语句不执⾏ 在C⾔中,0为假,⾮0表⽰真,也就是表达式结果如果...则执行default switch语句中case和default顺序问题 在 switch语句中 case ⼦句和 default⼦句有要求顺序?...default只能放在最后?其实,在 switch 语句中 case语句和default语句没有顺序要求,只要你顺序满足实际需求就可以。...=0,则继续循环,执行循环语句;判断表达式结果==0,则循环结束。 所以在 do while 语句中循环体⾄少执行一次,这是 do while循环比较特殊地⽅。

    21410

    深入浅出MySQL - MyISAM有趣那些“锁”事儿

    今天我们一起来聊聊MyISAM存储引擎中锁,MySQL中表锁主要使用对象就是MyISAM存储引擎,大家可能会疑问,Innodb不用表锁?   ...注:其实,这样称呼并不好理解,可以结合上篇文章《面试让HR都能听懂MySQL锁机制,欢声笑语中搞懂MySQL锁》,我们知道读锁和写锁就行了,这篇文章专讲的是MyISAM存储引擎中表锁,大家注意本篇文章锁都是表级就行...由于表级别锁不可能改变了,因此我们要着眼于尽可能让锁定时间变短,事务间能尽快释放锁,从而提升并发。...MySQL连这功能都没有?这TM得优化啊!唉,腹黑复仇计划再次泡汤,新认知层次并不能改变现状。。或许,还是我太过天真,像孩子一样无助??卧槽什么歌来着?   ...但这种策略对并发插入特性并不友好,因为并发插入追加到表尾部插入(尾插法),碎片也会越来越大,这就是一种时间换空间做法;当然,针对这种情况定期执行OPTIMIZE TABLE语句来整理空间碎片即可,耗时较长

    63820

    我,40岁码农,还在荷兰写低级代码,不敢回国…

    我们今天就通过一位40岁程序员一起去了解一下肉身翻墙基层员工最原始生活、工作状态。 该职场人跟笔者说原话这样,从业16年了,还在码很低级代码,不敢回国。...我现在工作和住处都在Amsterdam,英语对于我工作和日常足够了。但是政府文件和合同都是以荷兰为主,这个我也要靠翻译。 问:大概收入可以跟我们聊聊?也就是在荷兰做码农普遍薪资状况。...答:工签还是很容易,前提你能拿到工作且公司承诺协助你拿到签证(KM签证我记得2-3周就可以下来) 问:你现在永居还是已经入籍了?如果永居,你觉得难不难? 答:居住满5年然后通过荷兰考试。...答:天气好时候心情愉悦哪哪都美;天气不好时心情会很差,有时会觉得孤独有时而且会怀疑背井离乡来这里为啥。 父母也舍不得我走,加上CCAV总说国外不好。但相对于归属感,我更喜欢自由。...当我(曾经)作为一名管理者时,我会希望找到认同我理念同事同时给他们更多自由。但是国内大环境不允许,改变不了别人我只好改变我自己,于是我选择出国。我希望这只是我国发展阶段产物而在未来得到改善。

    1.1K40
    领券