c - b = false 与 if (b) b = false

标签 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;

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

应该怎么写?

最佳答案

使用第一种形式。添加额外的 if 检查不会影响代码的功能,只会影响其可读性,是一种不好的做法。您应该始终以最简洁的方式编写,不会混淆代码的意图。由于在这种情况下,您的意图始终是让变量为 false,因此只需设置 slc = false

关于c - b = false 与 if (b) b = false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13326666/

相关文章:

c - 避免大量的 if-else 检查

mysql - 在 Rails 中检查 boolean 值的正确方法

c - Visual Studio : Identifider "MSFDTEDIT_CLASS" is undefined

JavaScript If/Else 样式改变

linux - 如何修复此脚本以获得正确的输出?

c++ - 这个return语句有什么意义吗?

java - 类型不匹配 : cannot convert from int to boolean in while loop

c - 如何按字母顺序对句子中的每个单词进行排序?

c - 为什么我的非常简单的 makefile 不起作用

c - 在 C 中用 GtkTreeView 打印窗口?