首页 > 解决方案 > 找到硬编码号码

问题描述

我刚拿到我必须做的作业的成绩,它告诉我:在 hw2q1.c 中找到硬编码数字:

else if (number_letter < 6 && condition_r == 0) {
else if ((sum_value % 5) != 0 || number_letter > 4) {
    if (number_letter < 6 && condition_r == 0) {

使用硬编码数字减少 10 分。我不完全理解“硬编码”定义以及为什么我写 if 的方式是错误的。

谢谢;) PS:我的代码工作正常,并且成功通过了所有测试

标签: cif-statement

解决方案


硬编码数字是整数文字。它们也被称为幻数
在您的代码中,它们是6, 0, 5, 4.

那些阅读你的代码的人不会明白它们代表什么。几周后你可能也不记得了。

所以最好给这些数字起个名字。就像是:

const int number_letter_max = 6; 
const int number_letter_min = 4;
const int condition_r_check = 0;
const int sum_value_divisible = 5;

然后你的代码变成:

else if (number_letter < number_letter_max  && condition_r == condition_r_check) {
else if ((sum_value % sum_value_divisible ) != 0 || number_letter > number_letter_min ) {
    if (number_letter < condition_r_check  && condition_r == condition_r_check) 

推荐阅读