b = false vs if(b)b = false

时间:2012-11-10 22:26:57

标签: c if-statement boolean switch-statement case

我正在处理test.c文件并尝试计算其中的单行注释。

当我发现两个连续/个字符时,我将slc触发器设置为true

当我到达行尾时,我需要将slc触发器设置为false

当然\n字符清楚地表明单行注释的结束。

switch (character)
{
    case '\n':
        slc = false; // single-line comment ended
        break;

但是当找到\n个字符时,slc可以是truefalse

switch (character)
{
    case '\n':
        if (slc) slc = false; // single-line comment ended
        break;

这两个代码块之间有什么区别吗?

我该怎么写?

2 个答案:

答案 0 :(得分:6)

使用第一个表格。添加额外的if检查不会影响代码的功能,只会增加其可读性,这是不好的做法。您应始终尽可能以最简洁的方式编写不会模糊代码意图的方法。因为在这种情况下,您的意图始终是变量为false,所以只需设置slc = false

答案 1 :(得分:0)

排名第一的是诀窍以及为什么要担心if