Ror*_*man -1 c performance if-statement case switch-statement
注意:谢谢你告诉我,无论我怎么写,这都会毫无保留,我问的原因是因为它与我的大学任务类似,我想让我的讲师开心,是否有更"可读"代码或更好的东西,这将使我的讲师更快乐或这个代码是好的,而不是"低效".
我有一个关于我应该如何编写代码的问题,基本上我有一个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) {
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,由于交换仅在每第二种情况下发生,因此编写if语句(例如....)会更有效.
if (linenumber % 2 == 1) {
switch.....
}
Run Code Online (Sandbox Code Playgroud)
把switch语句放在里面...只是想知道在这种情况下额外的if语句是否会更高效或更低效.
提前致谢!
你问的是错误的问题.您要做的是称为微优化.它节省了纳秒.通常它不会,因为你三年前学到的东西今天可能是错的.真正的程序员不关心纳秒,他们会获得至少可以节省微秒的巨大胜利.
说真的,编写最易读的代码.在这种特殊情况下,switch语句非常难以理解.
有关严肃的优化问题,请查看Michael Kohne的答案.如果您不能使用分析器,那么速度不是很重要.