if语句使用建议
下面代码判断字符串不相同,很自然就用了逻辑!,实际上用法是错误的。
if (!strcmp(str1, str2)) { // ... } 因为strcmp返回的是int类型:
如果返回值小于0,则表示str1小于str2。
如果返回值等于0,则表示str1等于str2。
如果返回值大于0,则表示str1大于str2。
判断两个字符串是否相等,你会发现,增加了!判断会让人多思考一下。
if (!strcmp(str1, str2)) {// str1,str2字符相等 }应该这样做:
if (strcmp(str1, str2) == 0) {// str1,str2字符相等 }但君君更喜欢这样写:
bool isEqual = strcmp(str1, str2) == 0; if (isEqual) {// str1,str2字符相等 }特别地,不要在同一行写if语句。比如:
if (success) ...;因为有时候复制粘贴时会将语句写成:
if (success) ; // 相当于无效代码或:
if (success) ... // 突然被判断了突然被判断了,导致该执行的,却不会执行了,或者偶尔执行。这会导致程序莫名的bugs,有时候可以有时候不可以的错觉。
if加花括号还有一个好处是,复制代码复制不全时候编译器会报错,但如果不加花括号,有时候它不会报错,这就意外地增加莫名的bugs了,很闹心的。
因为switch使用起来不够稳定,我们常常会忘记添加break中断语句,导致逻辑不正确了。我们写代码也是这样,写出稳定的代码,首先你要代码看起来让人舒服,不会让人有过多的思考。
最后,如果严格遵守规则会使你的代码看起来很糟糕,请随意打破它。
总结
- 上一篇: PDM麦克风在ADAU1761上的应用详
- 下一篇: java通过poi操作word创建表格