关于K&R代码风格中的大括号

第二中只不过是K & R风格,具体参考《The C Programming Language》。
当时的屏幕没现在这么大,好像只有24 x 80,所以,推荐每行不超过79个字符,且大括号跟在判断语句后面。
现在屏幕没这么小了,但Linus仍然推荐Linux kernel使用K & R风格去写。就是这样,没有什么可争论的

标准的K&R风格应该是这样:

if(count>100){

count=0;

reset=true;

}

但是修改代码的时候竟然看到这样的代码段:

if(count>100){

count=0;

reset=true;

}

如果稍微不注意,那么reset=true;这个就以为在if以外了。可能脑海中第一的反应代码应该是

if(count>100)

count=0;

reset=true;

这样的样子。
再如果,if中的代码多一些,尤其是多于一屏时那必将是一个噩梦的开始。但是如果{单独一行的话,效果要好一些。

if(count>100)

{

count=0;

reset=true;

}

这样,即使是reset=true;没有缩进,那么也比较容易发现。
另外,抵触K&R风格的大括号的原因是调试不方便,例如我调试的时候想忽略if,那么K&R风格的代码只能这么做:

/*if(count>100)*/{

count=0;

reset=true;

}

如果习惯这种C风格的注视的话,那还好。但是,不管是习惯还是不习惯,都不如单独行的大括号来的方便

//if(count>100)

{

count=0;

reset=true;

}

再就是,如果if中的条件多行书写时,K&R风格的括号也很容易引起误解

if(count>100 &&

reset==false){

count=0;

reset=true;

}

起码reset==false很容易让人误解为if内的命令。这就不如单独行的大括号来的利落

if(count>100 &&

reset==false) {

count=0;

reset=true;

}



另外,单独行的大括号还有一个用处,例如当if段很长时,例如代码有几屏的时候,你可以把鼠标放在一个括号上,然后滚动屏幕去找对应的另外一个括号。但是如果K&R风格就没有这么方便了。
 
其实,之前也关注过一些书籍。基本上没有使用K&R风格的示例代码。很奇怪,为什么还有那么多的人在使用这种风格。
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 在 Java ,如果 if 语句只有一行代码,你可以不使用大括号。但是,为了避免可能的错误并且增强代码的可读性,最好还是加上大括号。 假如你不加大括号,那么当你添加第二行代码时,你可能会忘记加上大括号。这样就会导致控制流错误,因为第二行代码会被当作 if 语句的一部分,而不是与 if 语句无关的代码。 举个例子,假如你有如下代码: ``` if (a > b) c = a; d = b; ``` 如果你想让 d 的值等于 b,但是你忘认了加上大括号,那么代码会变成这样: ``` if (a > b) c = a; d = b; ``` 此时,d 的值会变成 a,因为 d 赋值语句被当作 if 语句的一部分。 因此,为了避免可能的错误,最好还是加上大括号。这样,即使你在以后添加了多行代码,也不会出现问题。 ### 回答2: 在Java,if语句的作用是根据条件的真假来执行相应的代码块。即使if语句只有一行代码,也要加上大括号的原因有以下几点: 1. 代码的可读性:使用大括号可以使代码更加清晰易读。在if语句加上大括号,可以明确标识出条件为真时需要执行的代码范围。 2. 避免错误:在if语句只写一行代码时,如果不使用大括号,容易导致出错。当后续开发者想要在if语句增加更多代码时,可能会误以为只有一行代码是if语句的执行体,从而引发错误。 3. 代码规范:Java编码规范明确要求使用大括号,即使只有一行代码。遵循这种规范可以提高代码的统一性和可维护性。 4. 避免语义歧义:如果if语句不加大括号,则条件为真时只会执行紧随其后的一行代码,容易导致语义歧义。使用大括号可以明确表达条件为真时需要执行的代码块,避免潜在的问题。 综上所述,即使if语句只有一行代码,为了代码的可读性、避免错误、遵循规范以及避免语义歧义,我们在Java还是应该为if语句加上大括号。 ### 回答3: 在Java,if语句的作用是根据条件的真假来决定是否执行特定的代码块。即使if语句只有一行代码,我们也要用大括号将其包围起来。这是因为使用大括号可以确保代码的清晰性和可读性。 第一,使用大括号能够明确if语句的代码块范围。在代码可以包含多行代码,而不仅仅是一行。如果if语句只有一行代码而没有使用大括号,那么可能会引发一些问题。比如,在添加新的代码时,容易忘记加入大括号,导致新添加的代码误认为是if语句的一部分。这样会产生逻辑错误或者导致代码执行不符合预期。 第二,使用大括号可以提高代码的可读性和可维护性。通过使用大括号,我们可以清楚地看到哪些代码是if语句的代码块。这对于团队合作的项目或者日后的代码维护非常重要。在调试和修改代码时,大括号能够减少错误和混淆,使代码更易于理解和维护。 第三,使用大括号营造了一致的代码风格。在Java编程,有一些常用的编码规范,比如Google编码风格,都要求使用大括号将if语句的代码块包围起来。遵守这些规范可以使代码更具统一性,提高代码的可读性,并且方便其他开发者理解和修改代码。 综上所述,尽管if语句只有一行代码,但为了确保代码的清晰性、可读性和可维护性,我们应该始终使用大括号将其包围起来。这是良好的编程习惯,能够减少错误并提高代码质量。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值