【发布时间】:2015-02-20 12:21:54
【问题描述】:
注意:谢谢你告诉我,不管我怎么写,这几乎不会节省,我问的原因是因为它与我的大学作业相似,我想让我的讲师开心,还有更多“可读”的代码或更好的代码,可以让我的讲师更开心,或者这个代码很好,而不是“低效”。
我有一个关于我应该如何编写代码的问题,基本上我有一个 switch 语句,用于根据它所在的行号将 char 更改为特定的 char。但是,只有当行号是奇数时它才会改变(从 0 开始,所以每第二行都会选择一个新字符)。目前我的代码是....
int linenumber;
char zone = UNKNOWN;
for (linenumber = 0; linenumber < 21; linenumber++) {
switch (linenumber) {
case (1):
zone = 'a';
break;
case (3):
zone = 'b';
break;
case (5):
zone = 'c';
break;
case (7):
zone == 'd';
break;
case (9):
zone = 'e';
break;
case (11):
zone = 'f';
break;
case (13):
zone = 'g';
break;
case (15):
zone = 'h';
break;
case (17):
zone = 'i';
break;
case (19):
zone = 'j';
break;
if (linenumber % 2 == 0) {
}
}
}
然而,由于切换只发生在每第二种情况下,编写 if 语句是否更有效,例如....
if (linenumber % 2 == 1) {
switch.....
}
将 switch 语句放在里面......只是想知道在这种情况下额外的 if 语句是否会或多或少有效。
提前致谢!
【问题讨论】:
-
考虑改用逻辑;类似
zone = 'a'+(linenumber/2); -
写
for (linenumber = 1; linenumber < 21; linenumber += 2)效率更高!!! -
真正的问题是:它有什么实际区别吗? (答案是“不”。)
-
注意
if (linenumber % 2 == 0) { ...中的代码无法访问。 -
我已经编辑了问题以获得我正在寻找的回复。感谢您的回复
标签: c performance if-statement switch-statement case