首页
学习
活动
专区
工具
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

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

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

38440

Java设计模式(通俗版)

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

33120

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;这不会改变,而且也不打算改变。 唯一改变在返回或赋值时,用于表示真假值首选值。

1K20

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.5K40

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

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

3.2K00

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

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

44820

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

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

9310

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循环比较特殊地⽅。

13210

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

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

54920

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

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

93640

实验上千次有90%重复,网友:幽默人类最后尊严

1008次结果中有90%都是25个笑话变体,只是稍微改变一下措辞或句式。...并且所有25个高频出现笑话都符合同一模式: 先提一个让人摸不着头脑问题,答案里出现双关、谐音梗或其他技巧,大致都属于“冷笑话”范畴。...研究人员据此得出结论,幽默对大语言模型来说仍然挑战,相关论文已上传到arxiv上。 这样一篇论文也引起很多网友兴趣,有人表示“幽默就是人类最后尊严?“。...2、双关 ChatGPT对这种笑话解释为“依靠听众对一个词多重含义理解来创造幽默惊喜”。 代表: 为什么数学书很悲伤?因为它problems(问题/困难)太多了。...最简单在提示词中加入“let’s think step by step”或者中文“请一步一步地想”。 再进阶一点,也可以手动指定思考步骤。 你有让ChatGPT讲出好笑话提示词

21920

每一个程序员要遵守一些优秀编程风格

无论你业余还是专业程序员,正确编程风格,不但有助于提升软件产品功能,还可以明显减少软件灾难产生。今天,我们就来探讨一下有助于我们获取更佳编程风格一些最好规则。...代码可读性至上 代码要能可阅读和可理解,就需要格式化成一致方式。对函数和变量命名应有意义,注释表达应该简洁而准确。并且,准确地记录代码中所有棘手部分十分重要。...确保代码有一定可维护性 我们需要确保写出来代码,换成另一个程序员来调整功能、修复bug,也是明确易懂。要将函数中关键值用常量来标记,这样我们就可以随时根据需要来改变这些常量值。...上述做法不但可缩短程序长度,还能大大提高其可读性。 整齐代码缩进 缩进在软件程序流程控制上起着至关重要作用。每一个新while、for、if语句,以及switch结构,都需要缩进代码。...这也可用于一行语句中括号已被省去情况。例如,假设有if语句,那么相应else语句必须一齐缩进。 结束 如果你熟悉了这些正确编程风格,那么编写软件程序就会成为一个非常有趣活动。

74080

苏杰:如果可以重来,你还会做工作狂么?

和《重来》系列前两本一样,第三本依然两位作者贾森和戴维(及其公司)真实工作状态总结与分享。...▼ 没有目标,不想改变世界 “为公司制定目标的信念——永远要努力争取做得更大更好——如此根深蒂固,以至于需要讨论事情好似只剩下了一件:这个目标的野心够不够大。...书里推荐做法:没有目标。大家在一起共事基于信任、共识,真心想做一点有意义事情,仅此而已。有点阿Q式自我解压?好像是,但这又有什么不好呢。...可以被人随意添加日程表就好像俄罗斯方块游戏,若不好意思拒绝,就只能任由方块一个接一个地掉落下来,直到自己一天被堆砌得满满当当——游戏结束。” 最近你看过自己日程表?...在接孩子放学?不知道。而且没人在乎这些,只要按照约定,完成任务就可以了。 如果你向往书中描述工作状态,且你一个打工者,那么在设计自己职业路线时候,可以留意上面我说几个条件。

17220

大家一致避免使用锁存器为什么依然存在于FPGA中?我们对锁存器有什么误解?

我们对这三个单词翻译真的是非常直观,从名字就能大概猜出它们含义。 锁存器 什么锁存器?   锁存器就是用来存储状态信息,就是将这个状态一直保持。...image   其中D为输入信号,当E为高时,输出Q即为输入D;当E为低时,Q保持E为高时最后一次状态,也就是锁存过程。 ? image 为什么锁存器不好?   ...触发器对脉冲边沿敏感,其状态只在时钟脉冲上升沿或下降沿瞬间改变。 触发器工作过程   我们以D触发器为例来说明触发器工作过程,D触发器接口如下: ?...在组合逻辑中,如果条件描述不全就会容易产生Latch: if语句中缺少了else语句 case语句中没有给出全部情况。...最常见就是状态机,我见过不少FPGA工程师在写状态机时,case语句中没有给出变量全部情况。 为什么锁存器依然存在于FPGA中?

1.6K21
领券