Edw*_*its 2 c if-statement boolean case switch-statement
我正在处理test.c文件并尝试计算其中的单行注释.
当我发现两个连续的/字符时,我将slc触发器设置为true.
当我到达行尾时,我需要设置slc触发器false.
当然,\n字符清楚地表明单行注释的结束.
switch (character)
{
case '\n':
slc = false; // single-line comment ended
break;
Run Code Online (Sandbox Code Playgroud)
但是当\n发现角色时,slc可能是true或者false.
switch (character)
{
case '\n':
if (slc) slc = false; // single-line comment ended
break;
Run Code Online (Sandbox Code Playgroud)
这两个代码块之间有什么区别吗?
我该怎么写?
使用第一个表格.添加一个if不影响代码功能的额外检查,只有它的可读性,是不好的做法.您应始终尽可能以最简洁的方式编写不会模糊代码意图的方法.因为在这种情况下,您的意图始终是变量false,只需设置即可slc = false.